Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django-如何从一个模型到另一个模型使用一个字段?_Django_Django Models - Fatal编程技术网

Django-如何从一个模型到另一个模型使用一个字段?

Django-如何从一个模型到另一个模型使用一个字段?,django,django-models,Django,Django Models,我有两种型号GeneralUser和UserVoteNews,它使用User作为外键。我想在GeneralUser中添加一个布尔字段,并想在UserVoteNews模型中访问它。我怎样才能做到这一点 class GeneralUser(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) ban = models.BooleanField(default=True) class UserV

我有两种型号
GeneralUser
UserVoteNews
,它使用User作为外键。我想在
GeneralUser
中添加一个布尔字段,并想在
UserVoteNews
模型中访问它。我怎样才能做到这一点

class GeneralUser(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    ban = models.BooleanField(default=True)

class UserVoteNews(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    ban = ??

我会为ban field制作一个模型。等等

class allUser(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE) 
    ban = models.BooleanField(default=True) 


class GeneralUser(models.Model):
    user = models.ForeignKey(allUser, on_delete=models.CASCADE) 
class UserVoteNews(models.Model):
    user =models.ForeignKey(allUser, on_delete=models.CASCADE)

我会为ban field制作一个模型。等等

class allUser(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE) 
    ban = models.BooleanField(default=True) 


class GeneralUser(models.Model):
    user = models.ForeignKey(allUser, on_delete=models.CASCADE) 
class UserVoteNews(models.Model):
    user =models.ForeignKey(allUser, on_delete=models.CASCADE)
使用以下方法代替字段:

但是,如果您在
GeneralUser
User
模型之间建立了关系,这将是一个很好的设计。然后你可以简单地使用:

@property
def ban(self):
   return self.user.generaluser.ban
使用以下方法代替字段:

但是,如果您在
GeneralUser
User
模型之间建立了关系,这将是一个很好的设计。然后你可以简单地使用:

@property
def ban(self):
   return self.user.generaluser.ban


嗯,由于一个
用户
可以有多个
通用用户
与其关联,因此任何用户都没有一个
ban
值。因此,没有一个值可以访问。您想要哪个值?我想要每个用户的ban值。id每个用户没有一个ban值。id,可以有多个ban值。您想要哪一个?一个用户可以有多个
GeneralUser
实例。你想要哪一个?我的错,我说错了。在每个普通用户实例@ruddawell的want ban值中,由于一个
用户
可以有多个
GeneralUser
与其关联,因此任何用户都没有一个
ban
值。因此,没有一个值可以访问。您想要哪个值?我想要每个用户的ban值。id每个用户没有一个ban值。id,可以有多个ban值。您想要哪一个?一个用户可以有多个
GeneralUser
实例。你想要哪一个?我的错,我说错了。在每个普通用户实例@ruddra的want-ban-value中,您能帮助我理解每个ban-value、最新的ban-value和任何ban-value之间的差异吗?此外,我还不了解最佳实践。如果可能,给我一些资源!OneToOne字段提供了一个限制,即不能使用一个用户对象创建多个GeneralUser实例。它还将使您比以相反的方式访问实例更有优势。您可以通过
User\u对象从
User
访问
GeneralUser
实例。GeneralUser
。每个ban值都将返回一个带有常规用户id和ban状态的字典。最新的ban将返回为单个用户创建的最后一个
GeneralUser
实例的ban状态。最后一个将返回True,如果有任何一般用户实例是banned,您可以帮助我了解每个ban值、最新的ban值和任何ban值之间的差异吗?此外,我不知道最佳实践。如果可能,给我一些资源!OneToOne字段提供了一个限制,即不能使用一个用户对象创建多个GeneralUser实例。它还将使您比以相反的方式访问实例更有优势。您可以通过
User\u对象从
User
访问
GeneralUser
实例。GeneralUser
。每个ban值都将返回一个带有常规用户id和ban状态的字典。最新的ban将返回为单个用户创建的最后一个
GeneralUser
实例的ban状态。如果有任何被禁止的普通用户实例,最后一个将返回True