【发布时间】:2020-10-27 03:07:30
【问题描述】:
在锁定期间开始编码,所以我很新,我所做的可能是一个丑陋的怪物,所以要小心。任何帮助将不胜感激,因为谷歌在我需要的时候抛弃了我。
我在引导模式中添加了一个表单,它可以是电影/电视/书籍。我的问题是它总是认为它的电视。当它有 3 个不同的 URL 和 3 个单独的 POST 请求时,这一切都有效,但我想感觉很花哨。
我试图用 3 个按钮告诉它它的“area_type”是什么,使用按钮名称和 POST。
<div class="btn-group mr-2" role="group" aria-label="second group">
<div class="dropright">
<a class="btn btn-primary dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Add Items
</a>
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
<a class="dropdown-item" data-toggle="modal" data-target="#exampleModal" name="Film">Add Film</a>
</form>
<a class="dropdown-item" data-toggle="modal" data-target="#exampleModal" name="TV">Add TV</a>
<a class="dropdown-item" data-toggle="modal" data-target="#exampleModal" name="Book">Add Book</a>
</div>
</div>
</div>
<div class="form-group">
<form action="/{{franchises_details.franchise_slug}}/{{area|lower}}" method="POST" enctype="multipart/form-data">
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
{% csrf_token %}
{{franchises_details.franchies_name}}: {{area}}
{{form.name}}
{% if not area == "Film" %}
Number of Ep:{{form.number_of_episodes}}
{% endif %}
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<input type="submit" class="btn btn-primary" value="Film" name="Film"/>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
我在获取请求时将其设置为“TV”(仅因为当我将其留空时它倒塌了),我认为这是我的问题的第一部分。在发布请求时,我会检查按钮名称。
def franchise_details(request,franchise_slug):
franchises_details = Franchise.objects.get(franchise_slug=franchise_slug)
form_type = forms.CreateFranchiseItemEp
if request.method == 'POST':
if "Film" in request.POST:
area = "Film"
form_type = forms.CreateFranchiseItemNoEp
if "TV" in request.POST:
area = "TV"
form_type = forms.CreateFranchiseItemEp
if "Book" in request.POST:
area = "Book"
form_type = forms.CreateFranchiseItemNoEp
form = form_type(request.POST)
if form.is_valid():
form_instance = form.save(commit=False)
form_instance.author = request.user
form_instance.franchies_name_id = franchises_details.id
form_instance.area_type = area
if area == "Film":
form_instance.number_of_episodes = 0
if area == "Book":
form_instance.number_of_episodes = 0
form_instance.all_user_average = 0
form_instance.save()
return redirect('/' + franchises_details.franchise_slug)
else:
form = form_type()
area = "TV"
return render(request, 'franchises_details.html', {'franchises_details': franchises_details, 'franchises_user': franchises_user, 'franchise_items_films':franchise_items_films, 'franchise_items_tvs':franchise_items_tvs,'franchise_item_users_film':franchise_item_users_film,'franchise_item_users_tv':franchise_item_users_tv, 'form':form,'area':area})
这里通常有更多内容,但我将其删除,因为它有点忙,我认为这是唯一相关的部分。
在我看来,我的“如果 request.POST: 中的“电影/电视/书籍”:”什么也没做。问题是这是 what the intent is suggesting I do 。以太币我把它搞砸了,或者它不再是一个东西,但我在这个阶段完全迷失了。
tl;dr 我按的是哪个按钮?我按下电影按钮它认为它的电视。它作为具有相同变量的单独 URL 工作
正如我所说,任何帮助都会很棒,因为我大部分时间都在学习一半的知识并复制粘贴
【问题讨论】:
标签: python django django-models django-forms django-views