首页 > 解决方案 > 不能分配必须是“”实例

问题描述

我正在处理我的第一个 django 项目,但出现此错误(无法分配“'433245675'”:“Lockers.locker_id”必须是“Renters”实例。)这里的任何人都可以帮助我。

观点:

def adding_renter(request):
    form_data = forms.AddingRenter(request.POST or None)
    msg = ''
    if form_data.is_valid():
        renters = models.Renters()
        renters.renter_id = form_data.cleaned_data['renter_id']
        renters.renter_name = form_data.cleaned_data['renter_name']
        renters.renter_email = form_data.cleaned_data['renter_email']
        renters.renter_phone_number = form_data.cleaned_data['renter_phone_number']
        renters.renting_start_date = form_data.cleaned_data['renting_start_date']
        renters.renting_end_date = form_data.cleaned_data['renting_end_date']
        renters.save()
        msg = 'Renter has been added successfully'
    context = {
        'form': form_data,
        'msg': msg
    }
    return rend

呃(请求,'addingrenter.html',上下文)

def adding_locker(request):
    form_data = forms.AddingLocker(request.POST or None)
    msg = ''
    if form_data.is_valid():
        lockers = models.Lockers()
        lockers.locker_id = form_data.cleaned_data['locker_id']
        lockers.locker_number = form_data.cleaned_data['locker_number']
        lockers.locker_information = form_data.cleaned_data['locker_information']
        lockers.locker_status = form_data.cleaned_data['locker_status']
        lockers.locker_notes = form_data.cleaned_data['locker_notes']
        lockers.save()
        msg = 'Locker has been added successfully'
    context = {
        'form': form_data,
        'msg': msg
    }
    return render(request, 'addinglocker.html', context)

标签: djangodjango-models

解决方案


我猜你的字段名为locker_id. 如果是这种情况,则实际的 ID 字段名为locker_id_id。所以尝试使用:

lockers.locker_id_id = form_data.cleaned_data['locker_id']

尽管您的错误使您的模型看起来像定义为:

class Renters(models.Model):
    ...

class Lockers(models.Model):
    locker_id = models.ForeignKey(Renters)

相反,它应该是:

class Renter(models.Model): # Models should be singular
    ...

class Locker(models.Model):
    renter = models.ForeignKey(Renter)

推荐阅读