Задать вопрос
@Destiny-online

Как получить uuid другой модели в CreateView?

Есть URL вида:
/
dashboard/shop/a2078636-6952-447d-bec4-e2306f69c03c/department/create

При создании department надо получить uuid shop'а, определить по нему shop_id(ForeignKey) и автоматически назначить его при создании Departament.
class DepartmentCreate(generic.CreateView):
    model = Department
    fields = ['shop_id','name', 'body']

UPD:
class DepartmentCreate(generic.CreateView):
    model = Department
    fields = ['shop_id','name', 'body']
    def form_valid(self, form):
        url_parts = self.request.path.split('/')
        form.instance.shop_id = Shop.objects.get(unique_id=url_parts[3])
  • Вопрос задан
  • 82 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Возьмите из url, в любом роутере есть функционал определения пути. А если уж и нет то тупо вырежьте регуляркой из url
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы