Django - ModelForm - начальное значение - PullRequest
0 голосов
/ 20 марта 2019

Я работаю с Modelforms и хотел бы установить начальное значение поля «фидер».Я получаю следующую ошибку типа: «Недопустимый литерал для int () с основанием 10:« Нет »» В чем может быть проблема?

Большое спасибо всем

forms.py:

class CashFlowForm(forms.ModelForm):
 class Meta:
    model = models.CashFlow
    fields = ['type', 'amount', 'description','date']
    widgets = {'date': DatePicker()}

views.py:

def create_cashflow(request, fundslug):

 funddetail = Fund.objects.get(slug=fundslug)

 if request.method == 'POST':
    cf = CashFlowForm(request.POST)
    cf.feeder = funddetail.feeder
    if cf.is_valid():
        instance_cf = cf.save()
        messages.success(request, 'Cash Flow successfully added!')
        return redirect('funds:create_cashflow', fundslug = fundslug) 
 else:
    cf = CashFlowForm()

 return render(request, 'funds/create_cashflow.html', {'cf': cf})

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

Модели не имеют значения, если не используется внешний ключ.В случае ошибки типа это в основном связано со значением, которое поля модели получают из формы.

Для присвоения значения после отправки формы сделайте что-то вроде

if request.method == 'POST':
    cf = CashFlowForm(request.POST)
    cf.save(commit=False)
    cf.feeder = funddetail.feeder
    cf.save()
0 голосов
/ 21 марта 2019

Финк funddetail.feeder return Нет или Вы можете попробовать

cf.cleaned_data['feeder'] = funddetail.feeder
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...