Как отслеживать url в формах на django?

Пользователь

от judd , в категории: Python , 2 месяца назад

Как отслеживать url в формах на django?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от marc_zboncak , 2 месяца назад

@judd 

Чтобы отслеживать URL в формах Django, вы можете использовать метод get_absolute_url() в моделе и функцию reverse() для построения URL.


Вот пример:

  1. В моделе добавьте метод get_absolute_url() для создания URL объекта. Например:
1
2
3
4
5
6
7
from django.urls import reverse

class YourModel(models.Model):
    # поля модели
    
    def get_absolute_url(self):
        return reverse('your-view-name', args=[str(self.id)])


  1. Создайте HTML-шаблон для формы, в которой вы можете использовать action для указания URL, куда будет отправляться данные формы. Например:
1
2
3
4
<form action="{{ object.get_absolute_url }}" method="post">
    <!-- поля формы -->
    <button type="submit">Submit</button>
</form>


  1. В файле urls.py определите путь к вашему представлению. Укажите имя представления, чтобы использовать его в методе get_absolute_url() вашей модели.
1
2
3
4
5
6
from django.urls import path
from . import views

urlpatterns = [
    path('your-url/<int:pk>/', views.YourView.as_view(), name='your-view-name'),
]


  1. В представлении (views.py) реализуйте обработку формы. Например:
1
2
3
4
5
6
from django.views.generic.edit import CreateView
from .models import YourModel

class YourView(CreateView):
    model = YourModel
    fields = '__all__'


Теперь, когда вы отправляете форму, она будет отправляться на конкретный URL, который вы определили в методе get_absolute_url() вашей модели.