Как получить первый экземпляр сохраненного значения в виде строки?

#python #django

#python #django

Вопрос:

То, что я пытаюсь сделать, это получить сохраненное значение из моделей в виде строки. Я пробовал этот способ:

 class ExternalKeys(models.Model):
    public = models.CharField(max_length=80, blank=True, null=True)
    secret = models.CharField(max_length=80, blank=True, null=True)
    webhook_secret = models.CharField(max_length=80, blank=True, null=True)
 

и вызвал его в представлениях, подобных этому stripe.api_key = ExternalKeys.objects.first().public ,
но это не работает.

Однако, если я поступлю таким образом, он выведет правильное значение в шаблон:

 def get_public_key(request):
    public = ExternalKeys.objects.first().public
    return render(request, 'templat.html', {'public': public})
 

Как я могу получить это значение как sting в представлениях?

Комментарии:

1. Что именно не работает? Обратите внимание, что .first() это не означает, что первый сохраненный объект. Без .order_by(..) , .first() может возвращать любую запись.

2. несмотря на то, что запись сохранена в базе данных, она выдает ошибку «django.db.utils. ProgrammingError: отношение «client_apps_externalkeys» не существует СТРОКА 1: … «client_apps_externalkeys».» webhook_secret» ИЗ «client_ap…

3. тогда вы либо неправильно выполнили миграцию, либо обращаетесь к неправильной базе данных (при использовании нескольких баз данных).

4. Мне интересно, как это происходит, потому что, как я уже сказал, я вижу, что он сохранен в БД и может быть извлечен в шаблонах, но если я вызываю stripe.api_key = ExternalKeys.objects.first().public , он выдает эту ошибку. Даже если я заменю модель ExternalKey любой другой рабочей моделью, она также выдает ту же ошибку. Я использую postgres db и схемы арендаторов django