我想使用foreignKey链接两个模型,问题是当我尝试这样做时,一个模型无法获取数据库表中下一个模型的foreignKey值。 目的是让用户在第一页(具有自己的模型和模板)上填写信息,然后单击下一步(在具有自己的模型和模板的下一页中填写更多信息),然后为相同的逻辑单击下一步。那么当其他用户查看此帖子时,它必须在一页中显示不同模型的所有内容。这是我的代码。
第一个模型
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()
拥有自己的模板
第二个模型
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',
]
请仅关注地图字段,因为上面的代码已将其隔离 一切正常,但foreignKey。我也没有看到需要在这里包括片段的所有代码。
我已经为此苦苦挣扎了好几天了。我还需要为第一模型编写一个api吗?对于视图,我使用了基于类的视图。
模型2的数据库表在地图字段上始终显示为null。 我已经提供了足够的信息。谢谢