0
我想使用DRF可瀏覽API POST表單在兩個表(日誌和發佈)中創建條目。Django REST框架和從POST表單創建兩個表項
下面的例子是人爲的,但它概述了我想要做的。
class Post(models.Model):
info = models.CharField()
class Log(TimeStampedModel):
ip = models.GenericIPAddressField(('IP Address'))
name = models.CharField()
data = models.ForeignKey(Post)
我想使用可瀏覽的API來提交表單來創建日誌條目。下面是串行:
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = ('info',)
class LogSerializer(serializers.ModelSerializer):
data = serializers.Field()
class Meta:
model = Log
fields = ('ip', 'name', 'data')
的問題與上面是serializer.Field
是隻讀所以POST表單上顯示不出來。如果我將它更改爲CharField,它會顯示出來,但是我得到一個錯誤,因爲Post的一個實例不僅僅是Post對象的一個字段。
這裏是我的觀點:
class LogMixin(object):
queryset = Log.objects.all()
serializer_class = LogSerializer
class LogList(LogMixin, ListCreateAPIView):
pass
class LogDetail(LogMixin, RetrieveUpdateDestroyAPIView):
pass
什麼是這樣做的正確方法是什麼?
嘗試過,但DRF POST表單只顯示IP和名稱字段。信息字段不會以DRF格式顯示。我也用我的api視圖更新了我的問題。謝謝。 – smithy
@smithy它看起來像你的意見不涉及你的後序列化。正因爲如此,你只是發送有關你的日誌對象的數據,但沒有關於你的Post對象。我將更新我的代碼以包含必要的View類。 – robert
我試過了,我只是得到了DRF表單上顯示的信息和日誌,並在日誌字段下顯示「non_field_errors」錯誤。謝謝。 – smithy