【发布时间】:2014-09-18 20:11:33
【问题描述】:
在一个 Django-REST-framework 项目中,我尝试使用嵌套关系并在可浏览的 API Web 视图中获得“non_field_errors”。
代码来自这部分文档:http://www.django-rest-framework.org/api-guide/relations#nested-relationships
models.py:
from django.db import models
class Album(models.Model):
album_name = models.CharField(max_length=100)
artist = models.CharField(max_length=100)
class Track(models.Model):
album = models.ForeignKey(Album, related_name='tracks')
order = models.IntegerField()
title = models.CharField(max_length=100)
#duration = models.IntegerField()
class Meta:
unique_together = ('album', 'order')
ordering = ('order',)
def __unicode__(self):
return '%d: %s' % (self.order, self.title)
serializers.py:
from rest_framework import serializers
from myapp.models import Album, Track
class TrackSerializer(serializers.ModelSerializer):
class Meta:
model = Track
fields = ('order', 'title')
class AlbumSerializer(serializers.ModelSerializer):
tracks = TrackSerializer(many=True)
class Meta:
model = Album
fields = ('album_name', 'artist', 'tracks')
错误(在../专辑中):
Track 输入字段被标记为红色,并带有错误消息:non_field_errors。
单击 OPTIONS 按钮显示实际正确的数据结构:
使用适当属性嵌套的轨道
可浏览浏览器视图的原始数据输入显示:
{
"album_name": "",
"artist": "",
"tracks": null
}
发布一些有效的原始数据确实有效。但是,如果 Web 界面表单也能正常工作,那就更好了。特别是因为我想知道是否发生了一些有趣的事情。
提前谢谢你!
【问题讨论】:
标签: python django rest django-rest-framework