當我嘗試使用表單更新Django中的記錄時,出現錯誤。我得到一個錯誤,那個號碼的記錄已經存在。以下是我的模型和觀點。這真的讓我瘋狂。我雖然Django只是更新記錄而不是試圖寫一個新的記錄。Django表更新記錄問題
class Report(models.Model):
report_number = models.CharField(max_length=4, unique=True)
detected = models.CharField(max_length=40)
computer_name = models.CharField(max_length=40)
username = models.CharField(max_length=15)
cab_date_time = models.CharField(max_length=40)
collector = models.CharField(max_length=40)
addresses = models.TextField()
fault = models.CharField(max_length=40)
known_malware = models.TextField(default='No')
collected_files = models.TextField(default='None')
registry_keys = models.TextField()
service_number = models.CharField(max_length=15, blank=True)
notes = models.TextField(blank=True)
sample_requested = models.CharField(max_length=4, blank=True)
action = models.CharField(max_length=35, blank=True)
,並查看
def reports(request, report_number):
instance = get_object_or_404(Report, report_number=report_number)
form = ReportForm(request.POST or None, instance=instance)
if form.is_valid():
form.save()
return HttpResponseRedirect('/')
return render(request, 'reports/report.html', {'form': form})
這裏是形式認定中
from django.forms import ModelForm
from reports.models import Report
class ReportForm(ModelForm):
class Meta:
model = Report
exclude = ('moderator',)
沒有你的看法需要一些'如果request.method == 'POST':'來單獨爲GET/POST請求返回的表單? – fpghost
我補充說,在我的測試過程中,保存時似乎沒有什麼區別。我仍然不斷獲得相同的record_number已經存在,而不是更新記錄。 – user2646288
@ user2646288你可以添加你的表單邏輯。 – cchristelis