Выполните запрос в django к другой таблице, но он не найдет таблицу - PullRequest
0 голосов
/ 07 июня 2019

Я пытаюсь выполнить запрос через объединение .

Мой models.py выглядит так:

class TSFH(models.Model):
sB = models.DateTimeField(null=True)
sE = models.DateTimeField(null=True)
FKToUser = models.ForeignKey(User,default=None, on_delete=models.PROTECT)

class Tld(models.Model):
dNm = models.CharField(verbose_name="",max_length=40,unique=True)
FKToUser = models.ForeignKey('auth.user', default=None, on_delete=models.PROTECT)

class TSF(models.Model):
FKToT = models.ForeignKey('T', on_delete=models.PROTECT)
FKToTSFH = models.ForeignKey('TSFH', on_delete=models.PROTECT, null=True, blank=True)

views.py

enteredd = request.GET.get('d', '')
query=TSFH.objects.filter(FKToT__dNm=enteredd,FKToUser=request.user,sE__isnull=False)
return render(request, 'view.html', {'q':q})

templates / file.html

{% if q %}
{% for res in q %}
<li><span>{{ res.sE }}</span></li>
{% endfor %}
{% else %}
{% endif %}

При просмотре всего этого он жалуется:

Cannot resolve keyword 'FKToT' into field

На простомsql Я хочу выполнить следующее только с помощью поиска dNm непосредственно из enteredd вместо фиксированного значения 123.145.23.1, как показано ниже:

SELECT sE 
FROM tsfh, tsf, t
where 
tsfh.id=tsf.FKTotsfh_id
and
t.id=tsf.FKToT_id
and
tsfh.sE is not null
and 
t.dNm='123.145.23.1';

Как сохранить эти существующие проверкив query но включить это FKToT__dNm=enteredd как-нибудь?

Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 07 июня 2019

Если вы поместите эту мету в свой класс, она будет называться таблицей.

class Meta:
    db_table = '<your_table_name>'

Вы можете прочитать больше здесь .

0 голосов
/ 07 июня 2019

Сделайте небольшую модификацию в этой строке:

query=TSFH.objects.filter(TST__FKToT__dNm=......)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...