views.py
@login_required()
def acronis_view(request):
allitems = Acronis.objects.all()
acroniform_form = acroniform()
if request.method == 'POST':
acroniform_form = acroniform(request.POST)
if acroniform_form.is_valid():
acroniss = acroniform_form.save(commit=True)
acroniss.save()
return redirect('/Verwaltung/Acronis')
return render(request, 'blog/acr.html', {'acroniform_form': acroniform_form, 'allitems': allitems})
@login_required()
def edit_acronis(request, id):
item = get_object_or_404(Acronis, id=id)
if request.method == "POST":
form = acroniform(request.POST, instance=item)
if form.is_valid():
form.save()
return redirect('/Verwaltung/Acronis')
else:
form = acroniform(instance=item)
return render(request, 'blog/editacronis.html', {'form': form})
================================================ ============
urls.py
path('EditAcronis/<int:id>', views.edit_acronis, name='edit_acronis'),
================================================ ============
blog / editacronis.html
{% extends 'blog/base.html' %}
{% load bootstrap4 %}
<html lang="en">
<meta charset="UTF-8">
<title>{% block supertitle %} Home {% endblock %}</title>
{% block Content %}
<form class="form-inline, form-row" action="{% url 'blog:acr' %}" method="post">
{% csrf_token %}
{% bootstrap_form form %}
<button type="submit" class="btn btn-success">Update</button>
</form>
{% endblock %}
================================================ ============
forms.py
类acroniform(forms.ModelForm):
def clean_key(self):
Key = self.cleaned_data['Key']
if Acronis.objects.filter(Key_iexact=Key).exists():
raise forms.ValidationError('Dieser Key ist bereits vergeben')
return Key
class Meta:
model = Acronis
fields = ('KN', 'Key', 'Release')
labels = {
'KN': 'Kundennummer',
'Key': 'Key',
'Release': 'Release',
}
如何停止复制?我也尝试过“ update_or_create” ...
@login_required()
def edit_acronis(request, id):
item = get_object_or_404(Acronis, id=id)
if request.method == "POST":
form = acroniform(request.POST, instance=item)
if form.is_valid():
form = acroniform.save(commit=True)
form.save()
return redirect('/Verwaltung/Acronis')
else:
form = acroniform(instance=item)
return render(request, 'blog/editacronis.html', {'form': form})
所以“ commit = True以及commit = False”不起作用。它仍然在重复...