Just Note : first_name и last_name уже присутствуют в модели пользователя по умолчанию django. Вы можете использовать это, если хотите.
---- Редактировать отсюда ----
1) Добавить связанное имя в оба поля ForeignKey (пожалуйста, используйте разные и лучшие имена). Кроме того, вы должны использовать поля related_name
в ForeignKey
и OneToOne
. Мы также можем использовать _set
, но я предпочитаю related_name .
class CallList(models.Model):
prospecting = models.ForeignKey(Prospecting, on_delete=models.CASCADE, null=True, related_name='prosp_name')
candidate = models.ForeignKey(Candidate, on_delete=models.CASCADE, related_name='cand_name')
Если вы используете функцию на основе функции, попробуйте это:
def func_name(request, prospecting_id):
qry = Candidate.objects.filter(cand_name__prospecting__pk=prospecting_id)
Если Вы также хотите проверить, вошел ли пользователь в систему (для одного запроса будет только один пользователь, поэтому технически он будет возвращать набор запросов, только если пользователь вошел в систему и вошел в систему, пользователь удовлетворяет условию, в противном случае он вернет None
). (Если вы хотите, чтобы все кандидаты, связанные с prospecting_id через список вызовов, не проверяли зарегистрированного пользователя.)
from django.db.models import Q
def func_name(request, prospecting_id):
filt = Q(cand_name__prospecting__pk=prospecting_id) & Q(user=request.user)
qry = Candidate.objects.filter(filt)
Надеюсь, это сработает, если нет, ответьте.