Изменить набор на словарь - Django Python - PullRequest
0 голосов
/ 04 апреля 2020

Я пытаюсь объединить эти два взгляда. Это то, что у меня есть. MenuView должен объединяться с add_to_menu, так что если оператор if возвращает отрицательное значение, часть просмотра меню все еще выполняется и отображает меню на моей странице html. Если оператор if положительный, он по-прежнему показывает меню, но также добавляет введенную информацию в базу данных. Я могу заставить один или другой работать одновременно.

Когда я запускаю это, я получаю сообщение об ошибке, говорящее мне, что это должен быть словарь, а не набор. Views.py:

class MenuView(ListView):
    model = Product
    template_name = 'mis446/edit-menu.html'
    context_object_name = 'show_menu'


def add_to_menu(request):

   if request.method == 'POST':
       if request.POST.get('name') and request.POST.get('price') and request.POST.get('nickname'):
        post=Product()
        post.name= request.POST.get('name')
        post.price= request.POST.get('price')
        post.slug= request.POST.get('nickname')
        post.save()
        model = Product
        context_object_name = {'show_menu'}
        return render(request, 'mis446/edit-menu.html', context_object_name)  

   else:
        model = Product
        context_object_name = {'show_menu'}
        return render(request,'mis446/edit-menu.html')

введите описание изображения здесь

1 Ответ

0 голосов
/ 04 апреля 2020

У меня еще нет 50 репутации, так что я думаю, что могу добавлять ответы, но не комментарии lol? В любом случае, из того, что у вас есть, может быть: context_object_name = {"show_menu"} является причиной ошибки, учитывая, что это набор, а не словарь. Чтобы сделать его словарём, вы должны добавить значение к ключу "show_menu". Я могу ошибаться, но, возможно, захочу попробовать это только в случае. Снова извините за публикацию как ответ, а не комментарий ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...