我想在create function中创建具有set属性的对象。 这是我的个人资料模型:
class Profile(models.Model):
user = models.OneToOneField(User,
on_delete=models.CASCADE,related_name='profile')
employees = models.ManyToManyField(User, blank=True, null=True,
related_name='boss')
FatherName = models.CharField(max_length=20,default='',blank=True)
NationalCode = models.CharField(max_length=20, default='')
birth_date = jmodels.jDateField(null=True, blank=True)
PhoneNumber = models.CharField(max_length=20,default='',unique=True)
当我创建对象
时emp = User.objects.create(first_name=FirstName, last_name=LastName,
username=phonenumber,user__PhoneNumber=phonenumber)
错误是此函数的无效关键字参数。 当我尝试创建用户模型时,如何在Profile模型中设置PhoneNumber值? 所有坦克
答案 0 :(得分:2)
您必须分两步执行此操作,因为您要创建两个实例。用户实例必须存在才能被ForeignKey引用。 STH。沿着这些方向将起作用:
user = User.objects.create(first_name=FirstName, last_name=LastName, username=phonenumber)
profile = Profile.objects.create(user=user, PhoneNumber=phonenumber)
答案 1 :(得分:1)
您可以使用Django信号隐式处理Profile
对象创建。
@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def create_profile(sender, instance=None, created=False, **kwargs):
"""
Create profile whenever a user is created.
"""
if created:
Profile.objects.create(user=instance)