Как получить данные CharField модели?
Как получить данные переменной модели из базы данных? Модель имеет СharField. Надо получить данные этого поля модели с определенным id из базыданных.
Ответы (2 шт):
Допустим ваша модель называется 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')
Отвечу раз такое дело. Вы имеете модель допустим такую. 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, пользоваться только функциями