Как использовать внешний ключ для отправки формы
У меня есть такая модель адреса:
class PrevAddress(models.Model):
id = models.AutoField(primary_key=True)
user = ForeignKey(User, on_delete=models.CASCADE)
address_province = models.CharField(max_length=32, null=True)
address_city = models.CharField(max_length=32, null=True)
address = models.CharField(max_length=128, null=True)
и модели mapinfo, которая связана с ней с помощью отношения внешнего ключа:
class MapInfo(models.Model):
id = models.AutoField(primary_key=True)
user = ForeignKey(User, on_delete=models.CASCADE)
prevAddress = models.ForeignKey(PrevAddress, on_delete=models.CASCADE)
location = LocationField(
map_attrs={
"style": "mapbox://styles/mapbox/streets-v11",
"center": (51.3890, 35.6892),
}, null=True)
lat = models.FloatField(blank=True, null=True)
long = models.FloatField(blank=True, null=True)
и вот представления, которые я написал для mapinfo:
class MapInfoView(CreateView):
template_name = 'reg/map.html'
model = MapInfo
fields = ['location']
success_url = '/profile/contact/prev-addresses'
def form_valid(self, form):
form.instance.user = self.request.user
return super().form_valid(form)
проблема в том, что каждая mapinfo связана с объектом prevaddress, и когда я хочу добавить новую mapinfo, ей нужен идентификатор объекта prevaddress для соединения, и она выдает мне эту ошибку:
NOT NULL constraint failed: reg_mapinfo.prevAddress_id.
как мне добавить что-то вроде этого в представления ... prevaddress.id = mapinfo.id? Я могу выбрать объект prevaddress для mapinfo на странице администратора, но пользователи, очевидно, не имеют к нему доступа. пожалуйста, помогите мне