/ api / loanextension / add /中的ValueError无法分配“<simplelazyobject:<user:=”“biju =”“>&gt;”:“LoanExtension.owner”必须是“LoanApplication”实例

时间:2016-10-16 08:39:13

标签: django django-rest-framework

class LoanApplication(models.Model):
user = models.ForeignKey(User, related_name="loan_user", **optional)
profile = models.ForeignKey(Profile, related_name='profile_user')
amount = models.DecimalField(_('Amount') ,max_digits=5, default=30000, decimal_places=0, help_text='Please fill the amount required')
period = models.PositiveIntegerField(_('Days') ,default=30, help_text='Please fill the repayment time required')
timestamp = models.DateField(_('Date') , default=datetime.date.today, help_text='Date of Application')
status = models.CharField(choices=STATUS_CHOICES, max_length=20, default='1')
is_approved = models.BooleanField(default=False)

def __str__(self):
    return str(self.user)

class LoanExtension(models.Model):
owner = models.ForeignKey(LoanApplication)
new_tenure = models.PositiveIntegerField(_('Days'), default=30, help_text='Please fill the repayment time required')
new_loan_amount = models.DecimalField(max_digits=5, default=30000, decimal_places=0, help_text='Please fill the amount required')
datestamp = models.DateField(default=datetime.date.today)
interest = models.DecimalField(max_digits=5, default=30000, decimal_places=0)
extension_fee = models.DecimalField(max_digits=5, default=30000, decimal_places=0)
is_approved = models.BooleanField(default=False)

def __str__(self):
    return str(self.owner)

class LoanExtensionSerializer(serializers.ModelSerializer):

class Meta:
    model = LoanExtension

    fields = ['id',
              'new_tenure',
              'new_loan_amount',
              'interest',
              'extension_fee',
              'datestamp',
              'owner'
              ]

我想将贷款分机分配给通过外键连接的贷款申请,当我添加它时会抛出价值错误,请给我一些帮助来解决它。 这种外键的方式是正确的方式还是我应该提供用户作为外键,请提示,谢谢。 对不起,我忘了添加意见,如下。

class LoanExtensionCreate(LoginRequiredMixin, CreateAPIView):
queryset = LoanExtension.objects.all()
serializer_class = LoanExtensionSerializer
authentication_classes = [SessionAuthentication]

def perform_create(self, serializer):
    owner =self.request.user
    serializer.save(owner=owner)

1 个答案:

答案 0 :(得分:0)

我已将owner = self.request.user更改为 owner = LoanApplication.objects.get(user = self.request.user),它正在运行。