Как связать две модели, каждая со своим шаблоном, используя foreignKey в Django - PullRequest
0 голосов
/ 14 ноября 2018

Я хочу связать две модели, используя 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, в поле карты она все время показывает ноль. Я предоставил достаточно информации. Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...