Как получить данные CharField модели?

Как получить данные переменной модели из базы данных? Модель имеет СharField. Надо получить данные этого поля модели с определенным id из базыданных.


Ответы (2 шт):

Автор решения: Zhenia Kviatkivskyi

Допустим ваша модель называется Album. И если пишите код используя классы:

views.py

pk = self.kwargs.get('pk')
current_album = Album.objects.get(id=pk)
current_album.ваше_поле_СharField

urls.py cледует указать например:

path("get/album/<int:pk>/",AlbumView.as_view())

Пример из учебного проекта.

class PickUpAlbumView(View):
    """забрать альбом"""
    def get_object(self,request,*args, **kwargs):
        pk = self.kwargs.get('pk')
        try:
            return Album.objects.get(id=pk)
        except Album.DoesNotExist:
            raise Http404

    def get(self,request, *args, **kwargs):
        pk = self.kwargs.get('pk')
        album = self.get_object(pk)
        album.user.add(request.user)

        return redirect('profile')
→ Ссылка
Автор решения: Dmitry

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

#models.py

class ConfigNew(models.Model):
    model = models.CharField(max_length=50)

Из views.py вы можете обратиться на прямую при помощи такого запроса:

from app.models import ConfigNew

def any_func(request):
    id = 53 # это для примера значение, можете передавать сюда как хотите
    config = ConfigNew.objects.get(pk=id)
    context = {"config":config}
    return render(request, "any.html", context)

Вот в принципе и все, переменная config содержит объект класса ConfigNew() с определенным вами id. В any.html вы можете увидеть, что содержит ваш config, вызвав вот так {{config}}

Но одно "но", хотя приведенный выше пример вполне рабочий я стараюсь его так не использовать, а писать функции в самом классе. Т.е. переносить логику из views.py, пользоваться только функциями

→ Ссылка