2015-05-02 2 views
1

Я создал модель, содержащую имя и цену. Я сделал вид, что поможет мне с добавлением продуктов на моем сайте:посмотреть "добавить товар" - не работает

def new_expense(request): 
    if request.method == "EXPENSE": 
     form = ExpenseForm(request.EXPENSE) 
     if form.is_valid(): 
      expense = form.save(commit=False) 
      expense.save() 
      return redirect('homebudget.views.expense_detail', pk=expense.pk) 
    else: 
     form = ExpenseForm() 
    return render(request, 'homebudget/edit_expense.html', {'form': form}) 

Теперь у меня есть что-то вроде этого: http://i.stack.imgur.com/3RbQr.png , но когда я нажимаю сохранить там никогда ничего не происходит! Что я должен изменить?

forms.py:

class ExpenseForm(forms.ModelForm): 

class Meta: 
    model = Expense 
    fields = ('name', 'price',) 

models.py:

class Expense(models.Model): 
    name = models.CharField(max_length=40) 
    price = models.FloatField("price") 

ответ

3

request.method не может быть равна EXPENSE, это может быть только HTTP method имя. Точно так же request.EXPENSE не определен. я не знаю, как это делается запрос, но то, что вы, вероятно, хотите, чтобы проверить это:

if request.method == 'POST': 
    form = ExpenseForm(request.POST) 

Примечание:

expense = form.save(commit=False) 
expense.save() 

и

expense = form.save() 

эквивалентны.

Смежные вопросы