Django 如何创建对象在 views.py 中有外键?

Django how to create object has foreignkey in views.py?

我写过这段代码:

views.py

    if not null:
            Address.objects.create(user = request.user,first_name = ad,last_name = soyad,address_title = baslik,address = adres,postalcode = posta,tel = gsm,il_ilce = Ilce.objects.get(il_id__il = sehir,ilce = ilce))

models.py

class Il(models.Model):
    il = models.CharField(max_length=20,blank=False,null=False)
    def __str__(self):
        return str(self.il)

class Ilce(models.Model):
    ilce = models.CharField(max_length=20,blank=False,null=False)
    il_id = models.ForeignKey(Il,blank=False,null=False,on_delete=models.PROTECT)
    def __str__(self):
        return str(self.ilce)

class Address(models.Model):
    
    first_name = models.CharField(max_length=30,blank=False,null=False)
    last_name = models.CharField(max_length=30,blank=False,null=False)
    user = models.OneToOneField(User,on_delete=models.CASCADE)
    address_title = models.CharField(max_length=20,blank=False,null=False,default="Adres")
    address = models.TextField(max_length=255,blank=False,null=False)
    il_ilce = models.ForeignKey(Ilce,blank=False,null=False,on_delete=models.PROTECT)
    postalcode = models.CharField(max_length=5,blank=False,null=False)
    tel = models.CharField(max_length=11,blank=False,null=False)

    def __str__(self):
        return str(self.user) + '-' + str(self.address_title)

但我收到此错误:

duplicate key value violates unique constraint "Users_address_user_id_key"
DETAIL:  Key (user_id)=(1) already exists.

我不希望代码创建新的用户对象我希望它只创建新的地址对象。

I don't want the code to create a new user object I want it to create a new address object only. - 您在 Address 模型中使用了 OneToOneField这意味着如果您尝试再创建一个用户,每个用户都会有一个与之关联的地址,那么它将引发给定的异常 duplicate key value violates unique constraint "Users_address_user_id_key" 所以要解决这个问题,您可以使用
update_or_create(...) [Djnago-doc] 或如果你想在一次使用中使用多个地址,那么你必须将 OneToOneFiled 更改为 ForeignKey.