Какой запрос я должен сделать для предварительной выборки данных из первой модели, чтобы они были заполнены при открытии формы для второй модели - PullRequest
0 голосов
/ 21 ноября 2018

models.py

class Appname(models.Model):
      name=models.CharField(max_length=150,blank=False,null=False,help_text='Add your new App')

      def __str__(self):
           return self.name

      def get_absolute_url(self):
           return reverse("dashapp:view")

class Adspace(models.Model):
      name=models.ForeignKey(Appname,related_name='adspaces', null=True, default=None,on_delete=models.CASCADE)
      ad_space=models.CharField(max_length=150,blank=False,null=False) 

      def __str__(self):
          return self.ad_space

      def get_absolute_url(self):
          return reverse("dashapp:view")

Запрос на создание

Я создаю форму, используя CreateView для обеих моделей.Для первой модели я сохраняю имя приложения, а затем создаю просмотр списка имен приложений с помощью ListView и отображаю их.Когда я нажимаю на одно из приложений в отображаемом списке, я перехожу к следующей форме, которая предназначена для следующей модели Adspace.Теперь я хочу, чтобы моя форма открывалась для второй модели, и имя раздела автоматически заполняется именем приложения, с которым я щелкнул, чтобы получить доступ к этой форме. Какой запрос я должен сделать, чтобы сделать это возможным. Пожалуйста, объясните это своим ответом.

1 Ответ

0 голосов
/ 21 ноября 2018

Если вы используете общий CreateView, вы можете переопределить метод get_initial(), чтобы установить начальные значения для создаваемого объекта:

def get_initial(self):
    # assuming the Appname id is passed in the view's kwargs as "app_id"
    try:
        app = Appname.objects.get(id=self.kwargs['app_id'])
        return super().get_initial().update({'name': app})
    except Appname.DoesNotExist:
        return super().get_initial()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...