Django: как сравнить две разные таблицы данных для datafield и получить совпадающие точно правильные данные?

#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 Здесь вы можете увидеть модели / Газета / 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. это на самом деле я ищу, если вы знаете. позвольте мне научить, как это сделать.