вообще никак нельзя объединять в одно?
зачем это?
на что я должен ответить ?
Как можете посоветовать обойти это ограничение queryset, чтобы это можно было сделать в одном запросе?
да связь m2m идет, у вас есть пример кода, чтобы по аналогии сделать?
Как я могу присвоить к JSONField модельку?
есть кто сталкивался с этим?
Откуда импортируется этот параметр?
А как сделать чтобы при дальнейшем редактировании продукта нельзя было изменить эту дату?
Нот эдитейбл в админ пай?
Такое было да?
вопрос как сделать чтоб в первом случае получал список reviews ?
а у review есть fk на Title?
а если так?
такой результат ожидаю получить из кода urls = [‘http://example.ru’, ‘https://example.com’]
for i in urls:
print(i)
instance.shop_url = i
instance.save()
а записывается только https://example.com
queryset viewset-а фильтрует только основную модель
syn_position получается отдельным запросом

у тебя файл называется так же как и модуль который импортируешь
syn_position получается отдельным запросом
вообще никак нельзя объединять в одно? без queryset тоже также получается простым обращением
syn_position_dict = Country.objects.values(‘syn_position__reg_syn_position’).filter(Q(short_name_country=country) & Q(syn_position__id_position=id_position[‘id_position’]))
Model.objects.bulk_create([Model(shop_url=url) for url in urls])
благодарю Вас Николай
syn_position_dict = Country.objects.values(‘syn_position__reg_syn_position’).filter(Q(short_name_country=country) & Q(syn_position__id_position=id_position[‘id_position’]))
ты что то показываешь без контекста
что это ?
где то?
зачем это?
на что я должен ответить ?
что это ?
где то?
зачем это?
на что я должен ответить ?
предыдущий я показывал через queryset, а это обращение без queryset просто к модели через тот же сериализатор.
Как можете посоветовать обойти это ограничение queryset, чтобы это можно было сделать в одном запросе?
не нужен тут Q, ну и если syn_position — m2m возможно есть несктолько связанных инстансов один из которых соответствует
не нужен тут Q, ну и если syn_position — m2m возможно есть несктолько связанных инстансов один из которых соответствует
без Q попробовал, также осталось(
да связь m2m идет, у вас есть пример кода, чтобы по аналогии сделать?
да связь m2m идет, у вас есть пример кода, чтобы по аналогии сделать?
ну без Q и не должно было поменяться, я просто к тому что в данном случае они не обязательны
да связь m2m идет, у вас есть пример кода, чтобы по аналогии сделать?
.exclude(~Q(syn_position__id_position=0)) можно попробовать так, или зарегистрировать кастомный лукап not equal
Мне нужно чтобы в DateField можно было указывать вручную при создании допустим продукта, auto_now и auto_now_add не подходит, как это сделать?
У меня есть поле shipping_address_data = JSONField(), и foreingkey shipping_address. Как я могу присвоить к JSONField модельку?
def create_order_model(self, user, basket, shipping_address, order_number, status, request=None, **kwargs):
«»»Create an order model.»»»
order_data = {‘basket’: basket,
‘number’: order_number,
‘date_placed’: now()
}
if shipping_address:
order_data[‘shipping_address’] = shipping_address
order_data[‘shipping_address_data’] = shipping_address
когда я делаю так, то она возвращает ошибку
Object of type ShippingAddress is not JSON serializable
Мне нужно чтобы в DateField можно было указывать вручную при создании допустим продукта, auto_now и auto_now_add не подходит, как это сделать?
сделать default=timezone.now
Откуда импортируется этот параметр?
У меня есть поле shipping_address_data = JSONField(), и foreingkey shipping_address. Как я могу присвоить к JSONField модельку?
def create_order_model(self, user, basket, shipping_address, order_number, status, request=None, **kwargs):
«»»Create an order model.»»»
order_data = {‘basket’: basket,
‘number’: order_number,
‘date_placed’: now()
}
if shipping_address:
order_data[‘shipping_address’] = shipping_address
order_data[‘shipping_address_data’] = shipping_address
когда я делаю так, то она возвращает ошибку
Object of type ShippingAddress is not JSON serializable
shipping_address_data = JSONField(encoder=DjangoJSONEncoder)
from django.utils import timezone
Спасибо)
У меня есть поле shipping_address_data = JSONField(), и foreingkey shipping_address. Как я могу присвоить к JSONField модельку?
def create_order_model(self, user, basket, shipping_address, order_number, status, request=None, **kwargs):
«»»Create an order model.»»»
order_data = {‘basket’: basket,
‘number’: order_number,
‘date_placed’: now()
}
if shipping_address:
order_data[‘shipping_address’] = shipping_address
order_data[‘shipping_address_data’] = shipping_address
когда я делаю так, то она возвращает ошибку
Object of type ShippingAddress is not JSON serializable
на счет DjangoJSONEncoder не уверен, что он точно подойдет, но если нет — можно написать свой который сможет)
главное без скобок указывай, иначе там сохранится одно — запуска инстанса приложения и будет записываться оно
Ок. А как сделать чтобы при дальнейшем редактировании продукта нельзя было изменить эту дату?
А вспомнил, ридонли
def get_queryset(self):
return get_list_or_404(Review, title_id=self.kwargs.get(‘title_id’))
не получает из за того что у модели Review переопределен метод str
но вот это работает
def get_queryset(self):
title = get_object_or_404(Title, id=self.kwargs.get(‘title_id’))
return title.reviews
вопрос как сделать чтоб в первом случае получал список reviews ?
там уже сложнее, можно для админки и форм/сериализаторов выставить отдельную проверку, можно в самой модели
def get_queryset(self):
return get_list_or_404(Review, title_id=self.kwargs.get(‘title_id’))
не получает из за того что у модели Review переопределен метод str
но вот это работает
def get_queryset(self):
title = get_object_or_404(Title, id=self.kwargs.get(‘title_id’))
return title.reviews
вопрос как сделать чтоб в первом случае получал список reviews ?
сделать нормально фильтр по моделе Review
А да оказывается при ридонли даже при добавлении не редактируется
https://books.agiliq.com/projects/django-admin-cookbook/en/latest/uneditable_existing.html
def get_queryset(self):
return get_list_or_404(Review, title_id=self.kwargs.get(‘title_id’))
не получает из за того что у модели Review переопределен метод str
но вот это работает
def get_queryset(self):
title = get_object_or_404(Title, id=self.kwargs.get(‘title_id’))
return title.reviews
вопрос как сделать чтоб в первом случае получал список reviews ?
а у review есть fk на Title?
да, иначе бы второй метод не сработал бы
покажи модель Review
class Review(models.Model):
title = models.ForeignKey(Title, on_delete=models.CASCADE, related_name=’reviews’)
text = models.TextField()
author = models.ForeignKey(User, on_delete=models.CASCADE, related_name=’reviews’)
score = models.PositiveSmallIntegerField(choices=SCORE_CHOICES, blank=True, null=True)
pub_date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return f'{self.author}: {self.text}, {self.pub_date:%d.%m.%Y %H:%M}’
title = models.ForeignKey(Title, on_delete=models.CASCADE, related_name=’reviews’)
text = models.TextField()
author = models.ForeignKey(User, on_delete=models.CASCADE, related_name=’reviews’)
score = models.PositiveSmallIntegerField(choices=SCORE_CHOICES, blank=True, null=True)
pub_date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return f'{self.author}: {self.text}, {self.pub_date:%d.%m.%Y %H:%M}’
а если так?
get_list_or_404(Title.reviews, title=self.kwargs.get(‘title_id’))
Not Found: /api/v1/titles/1/reviews/1/
а ок, ну можешь тогда принтануть self.kwargs.get(‘title_id’) перед ошибкой
Благодарю)