我的模型Entry
的{{1}},Foreign Key
类型为author
:
User
我定期使用AJAX轮询服务器,并有一个视图,它返回响应中的任何新author = models.ForeignKey(User, default=None)
对象,以JSON格式序列化。这是代码:
Entry
这会返回所有其余def pollNewEntries(request):
if request.method == 'GET':
delta = datetime.timedelta(seconds=19)
# Determine if there are any new posts since 19 seconds before current
# time. AJAX polls server every 10 seconds. Stores ids of new posts and
# checks those against any incoming posts, ignoring duplicates.
cutOff = timezone.now() - delta
newEntries = Entry.objects.filter(pubDate__gt=cutOff)
data = serializers.serialize('json', newEntries)
return HttpResponse(data, mimetype='application/json')
字段的完整数据,但是当我在Javascript中动态记录/打印/追加Entry
时,它会给我作者的id字段。我已经检查了JS中的序列化对象,Entry.author
中没有其他字段可以获取。
有没有办法更改序列化数据中author
的哪个部分?基本上,我希望我的视图返回author
字段的author.name
而不是author.id
的JSON对象。
答案 0 :(得分:0)
from django.db import models
class PersonManager(models.Manager):
def get_by_natural_key(self, first_name, last_name):
return self.get(name=first_name)
class Person(models.Model):
objects = PersonManager()
name = models.CharField(max_length=100)
birthdate = models.DateField()
class Meta:
unique_together = (('name'),)
你将能够实现你想要的目标。