我有一個seializer類Django的REST框架序列上POST請求
class StudentJournalSerializer(serializers.ModelSerializer):
class Meta:
model = StudentJournalModel
fields = (
'value',
'date',
'discipline',
'para_number',
'student',
'is_module'
)
這我不能去上班,因爲我需要它失敗。 我希望它不顯示ForeignKey字段的pk值,但實際的字段值加上這個類也應該適用於post方法。
我通常用來增加:
student = serializers.CharField(
source='student.username'
)
discipline = serializers.CharField(
source='discipline.discipline'
)
para_number = serializers.CharField(
source='para_number.para_position'
)
但是,僅與GET read_only=True
的作品,但我需要POST請求中使用它從客戶端應用程序來創建數據庫中的新對象,所以它顯然不會工作。我讀過,我需要編寫.create()方法來處理這種情況,但我真的不明白它是如何工作的以及我需要在那裏覆蓋哪些內容,所以如果有人能解釋它應該是什麼以及爲什麼,我會非常感激。
附加代碼的型號還有:
class StudentJournalModel(models.Model):
value = models.CharField(
max_length=55,
blank=True,
null=True,
verbose_name="Value",
default=''
)
date = models.DateField(
verbose_name="Date"
)
discipline = models.ForeignKey(
'department.Disciplines',
verbose_name="Discipline"
)
para_number = models.ForeignKey(
'department.ParaTime',
verbose_name="Class #"
)
student = models.ForeignKey(
User,
verbose_name="Student"
)
is_module = models.BooleanField(
verbose_name="Module value"
)
def __unicode__(self):
return u"%s, %s, %s" % (self.date, self.discipline, self.student.get_full_name())
什麼是queryset等於在我的案件? –
除非你需要設置一些限制,它會是 .objects.all() –
Linovia
我想我已經知道了。謝謝 –