Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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
Python Django模型错误:可以使用此多对多关系之前的字段x_Python_Django_Django Models - Fatal编程技术网

Python Django模型错误:可以使用此多对多关系之前的字段x

Python Django模型错误:可以使用此多对多关系之前的字段x,python,django,django-models,Python,Django,Django Models,我在尝试从用户添加多对多关系时遇到以下错误 ValueError:“”需要为字段指定一个值 使用此多对多关系之前的“appuser” 这就是我正在做的 > user = AppUser(email="test@test.com", password="password") > address = Address(name="test",address_line1="1") > user.address.add(address) 用户模型: class AppUser(Abst

我在尝试从用户添加多对多关系时遇到以下错误

ValueError:“”需要为字段指定一个值 使用此多对多关系之前的“appuser”

这就是我正在做的

> user = AppUser(email="test@test.com", password="password")
> address = Address(name="test",address_line1="1")
> user.address.add(address)
用户模型:

class AppUser(AbstractBaseUser):
    email = models.EmailField(
        verbose_name='email address',
        max_length=254,
        unique=True,
        db_index=True,
    )
    address = models.ManyToManyField('users.Address', null=True, blank=True)
地址模型:

class Address(Base):
    name = models.CharField(max_length=255)
    address_line1 = models.CharField('Address Line 1', max_length=100)
    def __unicode__(self):
        return self.name

在创建对象之间的多对多关系之前,需要先保存对象

user = AppUser(email="test@test.com", password="password")
address = Address(name="test",address_line1="1")
user.save()
address.save()
user.address.add(address)
原因是每个多对多关系字段将其数据存储在一个单独的表中,该表保存两个对象的ID。对象之间的关系是该表中的行。因此,显然,对象在进入关系之前首先需要有ID。他们通过保存来获得身份证