Size: a a a

Django [ru] #STAY HOME

2020 September 04

AK

Alex Kalinin in Django [ru] #STAY HOME
Dan Tyan
у меня вопрос больше
почему ты передаешь объект в сериализатор другой модели
"Метод научного тыка". Осталось перебрать еще несколько вариантов прежде чем попытаться прокинуть вотчлист в свой же сериализатор.
источник

П

Паша in Django [ru] #STAY HOME
Dan Tyan
у меня вопрос больше
почему ты передаешь объект в сериализатор другой модели
По задания надо сделать CRUD через модель WatchList. Вот и пытаюсь сделать. Сначала через Serializator сделал и все работает отлично.
источник

VV

Vera Vovk in Django [ru] #STAY HOME
подскажите можно как -то в MinValueValidator вставить вместо 0.0 значение из другой модели что-то вроде : validators=[MinValueValidator(auction.price)] ? 🙂
Сейчас так:
class Bid(models.Model):
   auction = models.ForeignKey(Auction, on_delete=models.CASCADE)
   user  = models.ForeignKey(User, on_delete= models.CASCADE, related_name='bi
ds')
   price = models.DecimalField(max_digits=10, decimal_places=2, validators=[MinValueValidator(0.0)])
источник

AK

Alex Kalinin in Django [ru] #STAY HOME
Vera Vovk
подскажите можно как -то в MinValueValidator вставить вместо 0.0 значение из другой модели что-то вроде : validators=[MinValueValidator(auction.price)] ? 🙂
Сейчас так:
class Bid(models.Model):
   auction = models.ForeignKey(Auction, on_delete=models.CASCADE)
   user  = models.ForeignKey(User, on_delete= models.CASCADE, related_name='bi
ds')
   price = models.DecimalField(max_digits=10, decimal_places=2, validators=[MinValueValidator(0.0)])
Нет.
источник

AK

Alex Kalinin in Django [ru] #STAY HOME
Я сам еще не пользовался этой фичей, но думаю такое можно сделать через констрейты
https://docs.djangoproject.com/en/3.1/ref/models/constraints/
источник

Я

Ярослав in Django [ru] #STAY HOME
Здрастуйте, хочу вынести  логику из шаблонов, чтобы не делать там проверку типа: {% if article.author == user or user.is_staff %} *показать кнопку редактирования/удаления* {% endif %}. Как это сделать правильней всего и нужно ли?
источник

Н

Не выходи из комнаты... in Django [ru] #STAY HOME
Ярослав
Здрастуйте, хочу вынести  логику из шаблонов, чтобы не делать там проверку типа: {% if article.author == user or user.is_staff %} *показать кнопку редактирования/удаления* {% endif %}. Как это сделать правильней всего и нужно ли?
Такую логику можно и в шаблонах писать. Ну можешь во вью, либо в другой слой вынести, если сильно надо..
источник

AK

Alex Kalinin in Django [ru] #STAY HOME
Ярослав
Здрастуйте, хочу вынести  логику из шаблонов, чтобы не делать там проверку типа: {% if article.author == user or user.is_staff %} *показать кнопку редактирования/удаления* {% endif %}. Как это сделать правильней всего и нужно ли?
Думаю в твоем случае всё правильно - шаблон отвечает за представление как и должен.
источник

AK

Alex Kalinin in Django [ru] #STAY HOME
Не выходи из комнаты.
Такую логику можно и в шаблонах писать. Ну можешь во вью, либо в другой слой вынести, если сильно надо..
Технически это можно вынести во вью, но я бы не сказал что это стоит делать.
источник

Н

Не выходи из комнаты... in Django [ru] #STAY HOME
Alex Kalinin
Технически это можно вынести во вью, но я бы не сказал что это стоит делать.
Согласен
источник

Я

Ярослав in Django [ru] #STAY HOME
Alex Kalinin
Технически это можно вынести во вью, но я бы не сказал что это стоит делать.
хорошо, спасибо за ответ)
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Vera Vovk
подскажите можно как -то в MinValueValidator вставить вместо 0.0 значение из другой модели что-то вроде : validators=[MinValueValidator(auction.price)] ? 🙂
Сейчас так:
class Bid(models.Model):
   auction = models.ForeignKey(Auction, on_delete=models.CASCADE)
   user  = models.ForeignKey(User, on_delete= models.CASCADE, related_name='bi
ds')
   price = models.DecimalField(max_digits=10, decimal_places=2, validators=[MinValueValidator(0.0)])
можно попробовать написать кастомный валидатор и из него сделать запрос (если нет нужды фильтровать по какм-то значениям из вне)
источник

AK

Alex Kalinin in Django [ru] #STAY HOME
Artem Gubatenko
можно попробовать написать кастомный валидатор и из него сделать запрос (если нет нужды фильтровать по какм-то значениям из вне)
Мне аж интересно стало как без лишнего гемора такое сделать. На ум приходит только сделать валидатор в который вручную надо передавать нужные объекты и лимиты. И использовать его мануально при каждом изменении объекта.
источник

AK

Alex Kalinin in Django [ru] #STAY HOME
По-сути просто отдельная функция.
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Alex Kalinin
По-сути просто отдельная функция.
источник

AK

Alex Kalinin in Django [ru] #STAY HOME
Насколько я понял автора оригинального вопроса, ей нужно связать 2 модели и проверять их поля совместно.
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Ярослав
Здрастуйте, хочу вынести  логику из шаблонов, чтобы не делать там проверку типа: {% if article.author == user or user.is_staff %} *показать кнопку редактирования/удаления* {% endif %}. Как это сделать правильней всего и нужно ли?
мне кажется, выносить такую логику из шаблонов излише
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Alex Kalinin
Насколько я понял автора оригинального вопроса, ей нужно связать 2 модели и проверять их поля совместно.
я предложил попробовать сделать запрос в другую модель а потом проверять, в самом валидаторе.
Вдруг сработает - мне вот интересно)
источник

Я

Ярослав in Django [ru] #STAY HOME
Artem Gubatenko
мне кажется, выносить такую логику из шаблонов излише
тоже так подумал, поэтому и переспросил
источник

AK

Alex Kalinin in Django [ru] #STAY HOME
Ярослав
хорошо, спасибо за ответ)
Единственный момент что у тебя постепенно может вырисоваться потребность в своей системе прав. article.author == user or user.is_staff явно намекает на это. Можешь глянуть https://github.com/django-guardian/django-guardian
источник