我的代码正在运行,但没有保存到数据库中。我想知道问题的根源。但是,我已经竭尽全力检查错误。提交后我收到成功消息。请帮助解决问题。您可以从下面的问题附带的图片中看到。
models.py
class Info(models.Model):
MASJID_TYPE = (
('Ratibi', 'Ratibi'),
('Jummah Masjid', 'Jummah Masjid'),
('Central Masjid', 'Central Masjid'),
)
SECT = (
('Al-Sunnah', 'Al-Sunnah'),
('Salafee', 'Salafee'),
('Sufi', 'Sufi'),
('Ahamadiyah', 'Ahamadiyah'),
)
STATUS = (
('Completed', 'Complete'),
('Un-Completed', 'Un-Completed'),
('Proposed', 'Proposed'),
)
user = models.ForeignKey(CustomUser, on_delete=models.CASCADE)
name = models.CharField(max_length=100)
masjid_type = models.CharField(max_length=50, choices=MASJID_TYPE)
address = models.TextField()
sect = models.CharField(max_length=250, choices=SECT)
state = models.CharField(max_length=50)
city = models.CharField(max_length=50)
LGA = models.CharField(max_length=50)
status = models.CharField(max_length=150, choices=STATUS)
history = models.TextField(blank=False, null=False)
founder = models.DateField("Founder Year", blank=False, null=False)
latitude = models.FloatField(max_length=20, blank=False, null=False)
longitude = models.FloatField(max_length=20, blank=False, null=False)
congregation = models.IntegerField(blank=False, null=False)
image = models.ImageField(upload_to='masjid', blank=False, null=False)
approval = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)
update_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('masjid_detail', kwargs={'pk': self.pk})
class Imam(models.Model):
CERTIFICATE = (
('PhD', 'PhD'),
('MSc', 'MSc'),
('Bsc', 'Bsc'),
)
masjid = models.ForeignKey(Info, on_delete=models.CASCADE)
first_name = models.CharField(max_length=20)
last_name = models.CharField(max_length=20)
imam_address = models.TextField(blank=False, null=False)
phone_no = models.CharField(max_length=20)
certificate = models.CharField(max_length=50, choices=CERTIFICATE)
occupation = models.CharField(max_length=50, blank=False, null=False)
no_of_wives = models.IntegerField(blank=False, null=False)
no_of_children = models.IntegerField(blank=False, null=False)
created_at = models.DateTimeField(auto_now_add=True)
update_at = models.DateTimeField(auto_now=True)
def __str__(self):
return str(self.first_name) + str(self.last_name) + str(self.masjid.name)
view.py
def newImam(request, pk):
masjid = get_object_or_404(Info, pk=pk)
masjid_info = masjid.id
template_name = 'addimam.html'
if request.method == 'POST':
form = ImamForm(request.POST, instance=masjid)
if form.is_valid():
form.save()
print(form.save)
messages.success(request, 'The Project Details Has Been Added Successully!')
return redirect('addimam', masjid.id)
else:
form = ImamForm(instance=masjid)
return render(request, 'addimam.html', {'form' : form,})
forms.py
class ImamForm(forms.ModelForm):
class Meta:
model = Imam
exclude = ('updated_at', 'created_at', 'masjid')
答案 0 :(得分:0)
def newImam(request, pk):
masjid = get_object_or_404(Info, pk=pk)
masjid_info = masjid.id
template_name = 'addimam.html'
if request.method == 'POST':
#form = ImamForm(request.POST, instance=masjid)
form = ImamForm(request.POST or None)
if form.is_valid():
print(form.data)
form.save(commit=False)
form.masjid_id = masjid_info
form.save()
messages.success(
request, 'The Project Details Has Been Added Successully!')
return redirect('addimam', masjid.id)
else:
form = ImamForm(instance=masjid)
return render(request, 'addimam.html', {'form': form})
实际上,在此我们无法发送任何实例,因为没有数据可用于新的伊玛目。因此您必须直接发送表单数据。