Задать вопрос
@InstalatorP

Как вывести поля модели в шаблон, основываясь на совпадении общего поля в 2х моделях?

Доброго времени суток.

Ситуация следующая:
Есть 2 модели, одна из которых модель под лог, вторая - модель пользователей

models.py
class Customer(models.Model):
    
    lp = models.CharField(primary_key=True, db_column='LP', max_length=8, verbose_name = "לוחית רישוי") 
    start_date = models.DateTimeField(db_column='Start_date', blank=True, null=True) 
    end_date = models.DateTimeField(db_column='End_Date', blank=True, null=True) 
    last_name = models.CharField(db_column='Last_Name', max_length=255, blank=True, verbose_name = "שם משפחה") 
    first_name = models.CharField(db_column='First_Name', max_length=255, blank=True, verbose_name = "שם פרטי") 
    
    
    class Meta:
         db_table = 'customer'

class Log(models.Model):
    
   
   lp = models.CharField(primary_key=True, db_column='LP', max_length=8, verbose_name = "לוחית רישוי")
    log_date = models.DateTimeField(primary_key=True, db_column='LOG_DATE')
    file = models.CharField(db_column='FILE', max_length=255, blank=True)
)
    class Meta:
        ordering = ["-log_date"]
        
        managed = False
        db_table = 'log'


views.py:
def logIndex(request):
    
    for log in Log.objects.values()[:25]:
        for customer in Customer.objects.values():
            if log['lp'] == customer['lp']:
                print(log['lp'], customer['lp'] )
    return render_to_response('Logs.html',{'logs':Log.objects.values()[:25],
                                           'customers': Customer.objects.only("lp","first_name","last_name"),
                                           'customerLpList':Log.objects.filter(lp__in = Customer.objects.all()),
                                           })


Задача:
1)Вывести Log в таблице
2)Проверить, если значение поля "lp" в Log совпадает со значением того же поля в модели Customer:
а. если есть совпадение, вытащить из Customer имя и фамилию и добавить их в соответствующие столбцы таблицы в шаблоне
б. если совпадения нет, выводить то что есть

совпадения вроде как осилил, проблема на основе совпадения вытащить имя и фамилию из Customer и подсунуть в соответствующие ячейки таблицы...

и да, поля моделей убирать/добавлять нельзя.
  • Вопрос задан
  • 2761 просмотр
Подписаться 2 Оценить 2 комментария
Решения вопроса 1
Попробуйте выбирать пользователей с помощью

customer=Customer.objects.get(lp=log.lp)

и проверять, существует ли такой пользователь. В объекте customer будут все параметры пользователя и получить имя можно будет с помощью

name = customer.first_name
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы