#django #django-models
#django #django-models
Вопрос:
Хорошо, это сложно объяснить.
У меня есть эти модели:
class Supplier(models.Model):
name = models.CharField(max_length=200, null=True)
phone = models.CharField(max_length=200, null=True, blank=True)
email = models.CharField(max_length=200, null=True, blank=True)
date_created = models.DateTimeField(auto_now_add=True, null=True)
class Product(models.Model):
description = models.CharField(max_length=30)
costprice = models.FloatField(null=True, max_length=99, blank=True)
retailprice = models.FloatField(null=True, max_length=99, blank=True)
barcode = models.CharField(null=True, max_length=99, unique=True, blank=True)
image = DefaultStaticImageField(null=True, blank=True,default='images/item_gC0XXrx.png')
supplier = models.ForeignKey(Supplier, on_delete=models.CASCADE, null=True, blank=True)
class Order(models.Model):
item = models.ForeignKey(Product, on_delete=models.CASCADE, default='')
supplier = models.ForeignKey(Supplier, on_delete=models.CASCADE)
item_qty = models.IntegerField(null=True, blank=True)
date_created = models.DateTimeField(auto_now_add=True, null=True)
Моя конечная цель — иметь возможность создавать «Заказ», извлекая товары от определенного поставщика.
Теперь я понятия не имею, как это сделать — как мне создать экземпляр «Заказа» в какой-то форме, который будет получать товары от выбранного поставщика, а не все товары от всех остальных?
Ответ №1:
Вы ищете limit_choices_to
Комментарии:
1. И если этого недостаточно, вам необходимо переопределить
get_queryset
метод вашего поля формы. Например, посмотрите на это: docs.djangoproject.com/en/3.1/ref/contrib/admin /…2. Спасибо, однако я не вижу, как я могу применить это к моему варианту использования
3. Вы хотите ограничить свой выбор в django admin?
4. Я хочу выбрать поставщика из списка, затем из этого конкретного поставщика выбрать только элементы, связанные с ним, в представлении. Когда я выбираю «поставщик x», на выбор должны быть доступны только товары, переносимые поставщиком x … надеюсь, это имеет смысл.
5. Если вы хотите выбрать и поставщика, и товар на одной странице, вам нужно написать несколько js. Вы должны прослушать изменения поля поставщика, и после выбора поставщика вы должны получить элементы, связанные с этим поставщиком, и просмотреть их как параметры элемента вашего заказа.