我有一点问题我创建了一个编辑表单来更新现有记录。表单正确显示,但是当我单击编辑按钮更新记录时,重定向我和记录的URL不会更新。 我的 views.py 可以进行修改:
@login_required
def szczegoly_pracownik(request, id):
link_pracownik = get_object_or_404(Cudzoziemiec, id=id)
return render(request, 'cudzoziemiec/szczegoly_pracownik.html', {'link_pracownik': link_pracownik})
@login_required
def edycja_pracownika(request, id):
link_pracownik = get_object_or_404(Cudzoziemiec, id=id)
if request.method == 'POST':
edycja_pracownika = CudzoziemiecForm(request.POST, instance=link_pracownik)
if edycja_pracownika.is_valid():
link_pracownik = edycja_pracownika.save(commit=False)
link_pracownik.save()
return render('szczegoly_pracownik', id=link_pracownik.id)
else:
edycja_pracownika = CudzoziemiecForm(request.user, instance=link_pracownik)
return render(request, 'cudzoziemiec/edycja_pracownika.html', {'edycja_pracownika': edycja_pracownika})
def szczegoly_pracownika 负责显示详情视图
档案 edycja_pracownika.html
{% if request.user.is_authenticated %}
<form action="." method="post">
{{ edycja_pracownika.as_p }}
{% csrf_token %}
<div class="float-right">
<p><input type="submit" value="Edytuj" ></p>
{% endif %}
和 urls.py 负责详细信息查看和编辑视图
...
path('pracownik/<id>', edycja_pracownika, name='edycja_pracownika'),
path('pracownik/<id>/', szczegoly_pracownik, name='szczegoly_pracownik'),
也许有人知道这个错误在哪里? 编辑:
forms.py
class CudzoziemiecForm(forms.ModelForm):
class Meta:
model = Cudzoziemiec
fields = ('nazwa','imie', 'nazwisko','obywatelstwo', 'data_ur','miejsce_ur','paszport','biometria', 'data_start_pasz', 'data_koniec_pasz', 'dok_pobytowy','cel_wizy', 'data_start_pobyt', 'data_koniec_pobyt')
def __init__(self, user, *args, **kwargs):
super(CudzoziemiecForm, self).__init__(*args, **kwargs)
self.fields['nazwa'].queryset = user.firma_set.all()
self.user = user
def save(self, commit=True):
instance = super(CudzoziemiecForm, self).save(commit=False)
instance.user = self.user
if commit:
instance.save()
return instance
答案 0 :(得分:1)
我不会到达看到真正的问题,但我会尝试一些事情。
您对不同的网页使用相同的几乎相同的网址。这不应该是一个问题,但我认为这可能是一个陷阱。为什么不在编辑表单中使用r'^pracownik/edytuj/$'
这样的内容? (对不起我试图制作波兰语网址:-))。
也许这可以避免可能的问题,并有助于澄清错误。
当你说:
网址重定向我
您的意思是指您再次被重定向到表单还是重定向到详细信息页面?