gpt4 book ai didi

django - ForeignKey(unique=True) 通常由 OneToOneField 提供更好的服务

转载 作者:行者123 更新时间:2023-12-02 21:06:55 28 4
gpt4 key购买 nike

class Categories(models.Model):
id = models.ForeignKey('auth.User',primary_key=True)
name = models.CharField(max_length=100)
description = models.CharField(max_length=300)

def __str__(self):
return Categories.name

class Meta:
order_with_respect_to = 'id'


class Specializations(models.Model):
id = models.ForeignKey('auth.User',primary_key=True)
name = models.CharField(max_length=100)
description = models.CharField(max_length=300)
categories = models.ForeignKey(Categories, on_delete=models.CASCADE)


def __str__(self):
return Specializations.name

courses.Categories.id:(fields.W342)在ForeignKey上设置unique=True与使用OneTo具有相同的效果OneField。

    HINT: ForeignKey(unique=True) is usually better served by a OneToOneField.

courses.Courses.id:(fields.W342)在ForeignKey上设置unique=True与使用OneToOne具有相同的效果字段。

    HINT: ForeignKey(unique=True) is usually better served by a OneToOneField.

courses.Specializations.id: (fields.W342) 在外键上设置 unique=True 与使用外键具有相同的效果一对一字段。

尽管关系是一对多,但仍会出现此警告或错误!不是一对一的

最佳答案

您设计模型的方式本质上是一种 OneToOne 关系,因为您将 ForeignKey 设置为 primary_key(这会自动应用unique=True)。

您真的希望用户成为类别特化primary_key吗?

我想你想要这样的东西:

class Categories(models.Model):
user = models.ForeignKey('auth.User')
name = models.CharField(max_length=100)
description = models.CharField(max_length=300)

def __str__(self):
return self.name


class Specializations(models.Model):
user = models.ForeignKey('auth.User')
name = models.CharField(max_length=100)
description = models.CharField(max_length=300)
categories = models.ForeignKey(Categories, on_delete=models.CASCADE)


def __str__(self):
return self.name

有了这个,用户可以拥有许多类别特化我还将 __str__ 方法更改为 self.name

关于django - ForeignKey(unique=True) 通常由 OneToOneField 提供更好的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35586089/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com