【发布时间】:2015-02-14 13:43:40
【问题描述】:
我需要通过 Angularjs 填充一个表单,该表单应该从 API 获取数据。 API 应返回用户表中的数据以及通过外键与用户表相关的静态表(计划、国家/地区)中的数据。
序列化器:
class CountrySerializer(serializers.ModelSerializer):
class Meta:
model = Country
queryset = Country.objects.all()
fields = ('id','name')
class PlanSerializer(serializers.ModelSerializer):
class Meta:
model = Plan
queryset = Plan.objects.all()
fields = ('id','details')
class UserSerializer(serializers.ModelSerializer):
plan = PlanSerializer()
conutry = CountrySerializer()
class Meta:
model = User
fields = ('name','plan','role','country',)
我的用户模型:
class User(models.Model):
name = models.CharField(max_length = 60)
role = models.ForeignKey(User_Role, null = True, blank = True)
plan = models.ForeignKey(Plan, null = True, blank = True)
country = models.ForeignKey(Country, null = True, blank = True)
我将从 Angularjs 调用 UserSerializer API,它应该从相应的表中返回用户的姓名、计划、角色、国家以及其他计划的列表、国家/地区。
基本上我需要为用户更新计划、国家/地区,因此我需要从计划/国家表中获取其他计划/国家/地区详细信息,以便我可以发送 PUT/PATCH 请求来更新它。它与 Django rest 框架可浏览 API HTML 表单(用于 PUT)非常相似,只是我使用 Angularjs 从服务器获取数据。
我想要的只是一个 API,它为相应的用户挑选数据,该用户还从其他静态表(计划、国家表)中获取额外数据,这些数据有助于更新某些字段(如计划、国家)。
【问题讨论】:
-
您能否更准确地描述问题所在?即您从 API 中得到的究竟是什么与您的期望。
-
@ThomasOrozco Iam 有一个 API,在加载页面时将获取用户(比如 user1)的详细信息,例如他的姓名、计划、国家等。计划和国家/地区是用户表的外键来自计划和国家表。我希望 api 返回与 user1 对应的行,并且它还应该从 Plan 和 Country 表中选择所有数据并将它们一起发送。
-
现在得到的是 json {'name':'xxx','plan':{'id':1,'desc':'test1'},'country':{'id ':1,'name':'USA'}} 我需要的是 {'name':'xxx','plan':{'id':1,'desc':'test1'},'country': {'id':1,'name':'USA'}} + {'plan':[{'id':1,'desc':'test1'},{'id':2,'desc': 'test2'},{'id':3,'desc':'test4'}],'country':[{'id':1,'name':'USA'},{'id':2, 'name':'UK'},{'id':3,'name':'FRANCE'}]}
标签: django angularjs django-rest-framework