У меня есть модель:
class Site(models.Model):
url = models.URLField(max_length=250, unique=True)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
def __str__(self):
return self.url
class Meta:
ordering = ('url',)
У меня есть страница с описанием модели. URL следующий: http://127.0.0.1:8000/sites/10/
Теперь мне нужно создать форму. Куда пользователь добавит новый сайт. И после добавления нового сайта я хочу перенаправить его на URL-адрес этой подробной страницы с его идентификатором сайта.
Вот путь urls.py:
from django.urls import path
from django.http import HttpResponse
from .views import RobotView, SiteView, add_site
app_name = 'checks'
urlpatterns = [
path('robots/<int:pk>/', RobotView.as_view(), name='robots'),
path('sites/<int:pk>/', SiteView.as_view(), name='sites'),
path('add/', add_site, name='add_site'),
]
и вот представление :
def add_site(request):
if request.method == 'POST':
form = AddSiteForm(request.POST)
if form.is_valid():
form.save()
return redirect('checks:sites', url.pk)
else:
form = AddSiteForm()
return render(request, 'home.html', { 'form': form })
Но это не работает. Может ли кто-нибудь помочь мне с этой проблемой?