Здравствуйте, помоги плиз новичку - есть такая модель: страны и города внутри стран, каждый город это Foreign Key для определенной страны. Очень просто создал CreateView для страны, вопросов нет, но не могу создать CreateView для города - мешает Foreign Key. В документации примеров нет - есть только туманный пример про внешний ключ автора
form.instance.created_by = self.request.user
Этот пример не помогает в данном случае. Как быть?
models.py
class Countries(models.Model):
....
country_name=models.CharField(max_length=30, choices=COUNTRY_CHOICE)
....
class Cities(models.Model):
country=models.ForeignKey(Countries, on_delete=models.CASCADE)
city_name=models.CharField(max_length=100)
....
urls.ry
path('countries/<int: country_id>/new_city/', login_required(CityCreate.as_view()), name='new_city')
view.py
class CityCreate(CreateView):
model=Cities
fields=['city_name', 'tags']
success_url=reverse_lazy('countries:cities')
template_name='countries/new_city.html'
def get(self, request, *args, **kwargs):
self.country=Countries.objects.get(id=self.kwargs['country_id'])
return super(CityCreate, self).get(request, *args, **kwargs)
def get_context_data(self, **kwargs):
context=super(CityCreate, self).get_context_data(**kwargs)
context['country']=self.country
return context
def form_valid(self, form):
form.instance.country=self.country
return super().form_valid(form)
countries/new_city.html:
country: {{ country }}
<form action="{% url 'countries:new_city' country.id %}" method='post' class="form">
{% csrf_token %}
</form>