Я попытался создать форму модели, чтобы добавить новую запись в мои модели в django. У меня есть 3 модели, и для этих моделей я создал формы, представления и шаблон.
(Обратите внимание, что в моем проекте яУ меня много кода, но я привожу некоторые из них здесь, которые объясняют мою проблему.)
Это мои файлы:
models.py
class ResearchRecord(models.Model):
TYPE_CHOICES = (
('1','scientific_research'),
('2','conference'),
)
user = models.ForeignKey(User, on_delete=models.PROTECT)
institutes = models.ForeignKey(EducationalInstitutes, on_delete=models.PROTECT)
title = models.TextField(max_length=250, blank=False)
type = models.TextField(max_length=100, blank=False, choices=TYPE_CHOICES)
year = models.DateField(max_length=100)
upload_url = models.FileField(upload_to='research-resume-files/')
def __str__(self):
return self.title
class EducationalInstitutes(models.Model):
INSTITUTES_CHOICES = (
('1','university'),
('2','education_center'),
('3','school'),
)
name = models.TextField(max_length=100, blank=True)
type = models.TextField(max_length=100, blank=False, choices=INSTITUTES_CHOICES)
description = models.TextField(max_length=500, null=True, blank=True)
educationl_institution_pic1 = models.ImageField(upload_to='educationl-institution-pics/',null=True)
def __str__(self):
return self.name
view.py
def view_research_resume(request):
research_resume =ResearchRecord.objects.filter(user=request.user)
research_resume_dict = {'research_resume':research_resume}
return render(request,'education/job_research_education_records/research_resume/view_research_resume.html',research_resume_dict)
def add_research_resume(request):
if request.method=="POST":
form = AddResearchForm(request.POST)
if form.is_valid():
research_resume = form.save(commit=False)
research_resume.user= request.user
research_resume.save()
return redirect('view_research_resume')
else:
form = AddJobForm()
return render(request, 'education/job_research_education_records/research_resume/add_research_resume.html', {'form': form})
forms.py
class AddResearchForm(ModelForm):
class Meta:
model = ResearchRecord
fields = [
'title',
'type',
'year',
'upload_url',
]
add_research_resume.html
<form method="post" >
{% csrf_token %}
{{form.as_p }}
<button type="submit" class="btn btn-info">add</button>
</form>
urls.py
urlpatterns = [
path('edu/resume/research/', views.view_research_resume, name='view_research_resume'),
path('edu/resume/research/add', views.add_research_resume, name='add_research_resume'),]
Действительно, моя проблема:
Iпроверить мою форму и проверить ее, но я не смог отправить форму.
создать представление для добавления новой записи в представлении add_research_resume, которое указывает текущего пользователя и выбрать для институтов, которые являются FK в модели ResearchRecord.
- как отобразить поле данных вФорма и год получения в модели ResearchRecord.
Обратите внимание, что я сделал следующие вещи:
- Сначала я смог успешно конкурировать с моими моделями, и я показываюих в моем шаблоне правильно.
- Более того, я хочу добавить новую запись в мою модель, но, поскольку мои Модели сложны и связаны с другими таблицами, я не смог успешно добавить новые записи в мои модели.
- Кроме того, у меня также есть проблема с удалением записи из таблицы в моих моделях.