Я хочу связать две модели, используя foreignKey. Проблема в том, что когда я пытаюсь это сделать, одна модель не получает значение foreignKey для следующей модели в таблице базы данных.
Цель состоит в том, чтобы пользователь заполнил информацию на первой странице (имеет свою собственную модель и шаблон), затем нажмите кнопку «Далее» (введите дополнительную информацию на следующей странице, имеющей свою собственную модель и шаблон), а затем нажмите кнопку «Далее» для той же логики. затем, когда другие пользователи просматривают это сообщение, оно должно показывать весь контент разных моделей на одной странице. вот мой код.
1-я модель
class Map(models.Model):
user = models.ForeignKey(User, default=None, blank=True, null=True, on_delete=models.CASCADE)
name = models.CharField(max_length=100)
position = GeopositionField()
ИМЕЯ СВОЙ ШАБЛОН
2-я модель
class Post(models.Model):
parent = models.ForeignKey("self", default=None, blank=True, null=True, on_delete=models.CASCADE)
user = models.ForeignKey(settings.AUTH_USER_MODEL, default=None, on_delete=models.CASCADE)
title = models.CharField(max_length=50)
content = models.TextField()
map = models.ForeignKey(Map, related_name='mapkey', default=None, blank=True, null=True, on_delete=models.CASCADE)
ИМЕЯ СВОЙ ШАБЛОН, НО также имеет метод сериализатора (API) ниже:
class PostModelSerializer(serializers.ModelSerializer):
user = UserDisplaySerializer(read_only=True)
parent = ParentPostModelSerializer()
map = serializers.SerializerMethodField()
class Meta:
start_date = forms.DateField(widget = forms.SelectDateWidget())
end_date = forms.DateField(widget = forms.SelectDateWidget())
model = Post
fields = [
'id',
'user',
'title',
'content'
'image',
'map',
]
Пожалуйста, сосредоточьтесь только на поле карты, поскольку оно выделено в приведенных выше кодах
все работает отлично, но иностранный ключ. Также я не видел необходимости включать весь код здесь, кроме фрагментов.
Я боролся с этим уже несколько дней. мне нужно написать API для 1-й модели также? для представлений я использовал представления на основе классов.
таблица базы данных для модели 2, в поле карты она все время показывает ноль.
Я предоставил достаточно информации. Спасибо