У меня есть форма, которая ссылается на три модели, и я хочу сохранить элементы для каждой модели. Одна из моделей имеет ссылки на внешние ключи к другим моделям, и я тоже хочу их сохранить.
Мои модели выглядят так:
class Address(models.Model):
housenumber = models.CharField(max_length=20,default='',blank=True)
street = models.CharField(max_length=80,default='',blank=True)
town = models.CharField(max_length=80,default='',blank=True)
county = models.CharField(max_length=60,default='',blank=True)
country = models.CharField(max_length=20,default='',blank=True)
postcode = models.CharField(max_length=10,default='',blank=True)
class GeoLocation(models.Model):
longitude = models.FloatField(default=-4.2576300)
latitude = models.FloatField(default=55.8651500)
class Location(models.Model):
locationname = models.CharField(max_length=80,default='',blank=True)
address = models.ForeignKey(Address, on_delete=models.CASCADE)
geolocation = models.ForeignKey(GeoLocation, on_delete=models.CASCADE, default='')
Мои взгляды выглядят так:
if locationform.is_valid() and addressform.is_valid() and geolocationform.is_valid():
locationform.save(commit=False)
new_address = addressform.save()
new_geolocation = geolocationform.save()
locationform.address = new_address
locationform.geolocation = new_geolocation
locationform.save()
Это выдаст мне сообщение об ошибке «Не выполнено ограничение NOT NULL: location_location.address_id».
Кто-нибудь может помочь? Я новичок в Django, поэтому считаю, что это сложно.