从Django 1.7升级到1.10以及Django Rest Framework 3.5.4后,我遇到了一个问题.问题是,当我尝试声明凭证时,endopint/calims返回500错误,文本为:IntegrityError at/claims(1048,"Column'user_id'不能为null")
在urls.py中添加如下路由:
url('^claims', v.ClaimList.as_view(), name='claim_list')
Run Code Online (Sandbox Code Playgroud)
而views.py文件中的相关部分是:
class ClaimSerializer(serializers.ModelSerializer):
company_name = s.ReadOnlyField(source="ad.company.name")
company_address = s.ReadOnlyField(source="ad.company.address")
ad_thumbnail = ThumbnailField(source="ad.picture", size="200x200", read_only=True)
class Meta:
exclude = ('user',)
model = m.Claim
class ClaimSerializerDeep(ClaimSerializer):
class Meta:
exclude = ('user',)
model = m.Claim
depth = 2
class ClaimSerializerFlat(ClaimSerializer):
class Meta:
exclude = ('user',)
model = m.Claim
@permission_classes((IsAuthenticated,))
class ClaimList(Limitable, generics.ListCreateAPIView):
model = m.Claim
def get_queryset(self):
tab = self.request.GET.get("tab", "active")
q = m.Claim.objects.filter(user=self.request.user.pk)
if tab == "active":
q = q.filter(redeemed=False, ad__end__gte=dt.date.today()) …Run Code Online (Sandbox Code Playgroud)