#python #django #django-models
#python #django #django-модели
Вопрос:
Models.py
class Newspaper (models.Model):
newspaper = models.CharField(max_length=50)
language = models.CharField(max_length=50, choices=Language)
wh_price = models.DecimalField(max_digits=6,decimal_places=2)
sa_price = models.DecimalField(max_digits=6,decimal_places=2)
description = models.CharField(max_length=50)
company = models.CharField(max_length=50)
publication = models.CharField(max_length=50, choices=Publication)
class Daily_Cart(models.Model):
ac_no = models.CharField(max_length=32)
newspaper = models.CharField(max_length=32)
added_date = models.DateTimeField(max_length=32,auto_now_add=True)
daily_update.py
def bill():
current_time = datetime.datetime.now().day
if current_time == 27:
news = Newspaper.objects.all()
daily = Daily_Cart.objects.all()
for x in news:
if x.publication=='Weekdays':
for xc in daily:
print(xc.newspaper, x)
Таблица Daily_cart должна соответствовать таблице newspaper. Если данные выходят, нужно распечатать newspaper И ac_no. Этот результат я ожидаю.
Здесь вы можете увидеть модели / Газета / Daily_cart
печать (xc.newspaper, x)
monnews monnews
если использовать print(set (xc.newspaper) amp; set (x)), я получил ошибку
Traceback (most recent call last):
File "C:UsersuserDocumentsProject--DjangoPro_Venvlibsite-packagesapschedulerexecutorsbase.py", line 125, in run_job
retval = job.func(*job.args, **job.kwargs)
File "C:UsersuserDocumentsProject--DjangoPro_VenvNewspaperAPIinvoice.py", line 18, in bill
print(set(xc.newspaper)amp; set(x))
TypeError: 'Newspaper' object is not iterable
Комментарии:
1. не лучше ли использовать ForeignKey?
2. у меня уже есть много для многих с моделью газеты. я пытаюсь сделать, но не работает? Consumer_order.objects.filter(газета__Газета_публикация= [‘Будни’]) ; трассировка: — django.db.utils. Ошибка программирования: столбец NewspaperAPI_daily_cart.newspaper_id не существует СТРОКА 1: … ly_cart».»id», «NewspaperAPI_daily_cart».»ac_no», «Газета…
3. для eb в Consumer_order.objects.filter(newspaper__publication=’Weekdays’): для ebc в eb.newspaper.all():
4. фильтр не показывает много-много полевых данных?
Ответ №1:
Ваш
print(xc.newspaper, x)
Должно быть
print(str(xc.newspaper), str(x.newspaper))
Комментарии:
1. Ошибка типа: неподдерживаемые типы операндов для amp;: ‘str’ и ‘Newspaper’
2. Я отредактировал свой ответ и преобразовал значения в строку.
3. Нет, вы ошиблись. я знаю строковое покрытие. в случае, если customer_order необходимо перепроверить с газетными публикациями, тогда, если у какой-либо статьи есть для буднего дня, также покажите paper и customer Ac_no. это на самом деле я ищу, если вы знаете. позвольте мне научить, как это сделать.