Отображение формы комментария в Django 401 ошибка
Я пытаюсь создать CRM на Django и при этом пытаюсь добавить место для добавления комментариев к лидам. Я создал форму, и при отправке комментария я попадаю на 401 страницу, где меня встречает ошибка. На 401 странице она ссылается на мою form.save() в моих представлениях. Пожалуйста, помогите.
401 Ошибка
"Поле 'id' ожидало число, а получило 'some'."
. Я размещу свой код ниже
Ниже представлено мое представление информации, которое используется для отображения информации о конкретном лиде
def info(request, pk):
info = lead.objects.get(id=pk)
form = lead_comment()
if request.method == 'POST':
form = lead_comment(request.POST)
if form.is_valid():
form.save()
return redirect('info.html')
context={'info':info, 'form': form}
return render(request, 'info.html', context)
Мои URLS
from django.urls import path
from . import views
urlpatterns = [
path('', views.dashboard, name='dashboard'),
path('leads/', views.leadsPage, name='leads'),
path('docs/', views.docsPage, name='docs'),
path('add-lead/', views.addLead, name='add-lead'),
path('leads/<str:pk>/', views.info, name='description'),
]
My info.html
{% include 'navbar.html' %}
<body class="dash">
<div class="navdash">
<div class="container-lead">
<div class="lead-space">
<h2>{{ info.first }} {{ info.last }}</h2>
<h5>Phone number: {{ info.phnum }}</h5>
<h5>Email: {{ info.email }}</h5>
</div>
<body>
<form method="POST" action="">
{% csrf_token %}
{{ form }}
<input type = "submit" value = "Submit" />
</form>
</body>
</div>
</div>
</body>
Моя модель лидов, где я инициализирую комментарий
class lead(models.Model):
first=models.CharField(max_length=20)
last=models.CharField(max_length=20)
email=models.CharField(max_length=30)
phnum=models.CharField(max_length=10)
associate=models.ForeignKey(agent, on_delete=models.CASCADE, default='some' )
comment=models.CharField(max_length=500, blank=True, null=True)
def __str__(self):
return self.first + ' ' + self.last
Моя форма
class lead_comment(ModelForm):
class Meta:
model=lead
fields=['comment']
Попробуйте добавить следующие строки в ваши представления информации:
def info(request, pk):
i = lead.objects.get(id=pk)
form = lead_comment(instance=i)
if request.method == 'POST':
form = lead_comment(request.POST, instance=i)
if form.is_valid():
form.save()
return redirect('info.html')
context={'i':i, 'form': form}
return render(request, 'info.html', context)