我的模型序列化程序目前正在返回'无'在每个字段中检索两个记录,尽管表中的那些字段中有数据。我无法确定如何正确调用它。
以下是模型:
class Form(models.Model):
name = models.CharField(max_length=255, null=True, blank=True)
header = models.CharField(max_length=255, null=True, blank=True)
body = models.CharField(max_length=255, null=True, blank=True)
submit_button_label = models.CharField(max_length=255, null=True, blank=True)
edited = models.DateTimeField(auto_now=True, auto_now_add=True, blank=True)
created = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return unicode(self.name)
这是我的序列化程序定义:
class FormSerializer(DefaultSerializer):
class Meta:
model = page_builder_models.Form
以下代码可行,但似乎就像最好的做事方式:
pf_qs = p.form.all().values()
form_list = []
for i in pf_qs:
temp_dict = dict()
temp_dict = page_builder_serializers.FormSerializer(page_builder_models.Form.objects.get(pk=i['form_id'])).data
form_list.append(temp_dict)
print(form_list)
这是print语句返回的数据:
[{u'id': 1, 'name': u'test_form', 'header': u'Test Form Header',
'body': u'This is just some test text for the Form Body field',
'submit_button_label': u'Submit it!',
'edited': datetime.datetime(2015, 1, 22, 7, 50, 22),
'created': datetime.datetime(2015, 1, 22, 7, 50, 24)},
{u'id': 2, 'name': u'another_test_form', 'header': u'Second Test Form',
'body': u'blah blah blah', 'submit_button_label': u'Faggetaboutit',
'edited': datetime.datetime(2015, 1, 24, 4, 35, 20),
'created': datetime.datetime(2015, 1, 24, 4, 35, 24)}]
这是我尝试开始工作的代码:
try: # a Page can have multiple Form recs
forms = page_builder_serializers.FormSerializer(pf_qs, many=True).data
except page_builder_models.Form.DoesNotExist:
return rest_response.Response(data={'error': "form record cannot be found"}, status=404)
这是从终端打印出来的:
[{u'id': 1, 'name': None, 'header': None, 'body': None,
'submit_button_label': None, 'edited': None, 'created': None},
{u'id': 2, 'name': None, 'header': None, 'body': None,
'submit_button_label': None, 'edited': None, 'created': None}]
非常感谢任何和所有帮助/建议。
答案 0 :(得分:0)
您需要在is_valid()
属性具有值之前致电.data
。
否则值确实为None
。