Я хотел бы сделать так, чтобы current_user существовал в наборе запросов, поэтому я пытаюсь:
{% if obj.payer.name == current_user.username %}
{{ obj.price|intcomma }} / {{obj.dutch_payer.all.count}}</p>
<p>={{ obj.price|div_payer_me:obj.dutch_payer.all.count|intcomma }}</p>
{% else %}
{% if current_user.username in obj.dutch_payer.filter(name=current_user.username) %}
{{ obj.price|intcomma }} / {{obj.dutch_payer.all.count|add1}}</p>
<p>={{ obj.price|div_payer_notme:obj.dutch_payer.all.count|intcomma }}</p>
{% else %}
0
{% endif %}
{% endif %}
, но возникает ошибка:
Не удалось проанализировать остаток: '(name = current_user.username) 'from' obj.dutch_payer.filter (name = current_user.username) '
Модель Tempfriend:
class Tempfriend(core_models.TimeStampedModel):
name = models.CharField(max_length=30)
belongs_to = models.ForeignKey(
user_models.User, on_delete=models.CASCADE, related_name="belongs_to")
def __str__(self):
return self.name
moneylog модель:
class Moneylog(core_models.TimeStampedModel):
moneybook = models.ForeignKey(
moneybook_models.Moneybook, on_delete=models.CASCADE)
pay_day = models.DateTimeField(default=NOW)
payer = models.ForeignKey(
tempfriend_models.Tempfriend, on_delete=models.CASCADE, related_name="payer")
dutch_payer = models.ManyToManyField(
tempfriend_models.Tempfriend, related_name="dutch_payer", blank=True)
price = models.IntegerField()
category = models.CharField(max_length=10)
memo = models.TextField()
objects = models.Manager()
как видите, dutch_payer и current_user - это разные модели.
Как я могу проверить есть ли current_user в dutch_payer?
Попробовал:
@register.filter
def user_in_dutch_payers(current_user, obj):
return obj.dutch_payer.filter(name=current_user.username).exists()