Size: a a a

Django [ru] #STAY HOME

2020 March 20

D

Dmitriy in Django [ru] #STAY HOME
scope это что для тебя?
источник

in Django [ru] #STAY HOME
Dmitriy
scope это что для тебя?
среда в которой хранятся переменные и мета инфа
источник

D

Dmitriy in Django [ru] #STAY HOME
Я вижу что это AsgiRequest
источник

D

Dmitriy in Django [ru] #STAY HOME
среда в которой хранятся переменные и мета инфа
Если в лоб, то ты можешь сдалать. scope.user = user, а дальше его отсюда вытащить
источник

D

Dmitriy in Django [ru] #STAY HOME
Но я не очень понимаю откуда у тебя пользователи берутся
источник

yh

yasya huyase in Django [ru] #STAY HOME
Ребята, есть ли какая то альтернатива inline_fotmsetfactory?
источник

D

Dmitriy in Django [ru] #STAY HOME
Нет
источник

yh

yasya huyase in Django [ru] #STAY HOME
render() got an unexpected keyword argument 'renderer'
появляется вот такая ошибка, при попытке зарендерить форму
(используются django-crispy-forms и django-smart-selects)
из-за чего может быть и как ее пофиксить?
источник

M

Mike in Django [ru] #STAY HOME
Привет.
DRF. У меня есть две модели Level and Question.  Я пробую получить все квешинсы из модели Question конкретного Level'a.
localhost:8000/app/SLUG/questions/ - получаю такой JSON
[
   {
       "id": 38,
       "name": "tra ta ta ta ta",
       "level": 4
   },
   {
       "id": 39,
       "name": "bla bla bla bla",
       "level": 4
   },
]

Как я могу вместо 'level': 4, отобразить имя level'a , например: 'level': первый левел.

from django.db import models
from django.template.defaultfilters import slugify

class Level(models.Model):

   name = models.CharField(max_length=100, unique=True)
   created = models.DateTimeField(auto_now_add=True)
   slug = models.SlugField(max_length=250, unique=True, null=True, blank=True)

   def __str__(self):
       return self.name

   def save(self, *args, **kwargs):
       self.slug = slugify(self.name)
       super(Level, self).save(*args, **kwargs)


class Question(models.Model):
   level = models.ForeignKey(Level, related_name='question', on_delete=models.CASCADE)
   name = models.CharField(max_length=650)

   def __st__(self):
       return self.name


my serializers.py
from rest_framework import serializers
from . models import Level, Question

class LevelSerializer(serializers.ModelSerializer):
 
 class Meta:

   model = Level
   fields = '__all__'

class QuestionSerializer(serializers.ModelSerializer):

 class Meta:

   model = Question
   fields = '_
_all__'
источник

AI

Andrei Ivashkevich in Django [ru] #STAY HOME
class LevelShortSerializer(serializers.ModelSerializer):
   class Meta:
       model = Level
       fields = ('name',)


class QuestionSerializer(serializers.ModelSerializer):
   level = LevelShortSerializer()
   class Meta:
       model = Question
       fields = '__all__'
источник

AI

Andrei Ivashkevich in Django [ru] #STAY HOME
в кратце, для поля level в своем question сериаизаторе используешь сериализатор левела
источник

AI

Andrei Ivashkevich in Django [ru] #STAY HOME
источник

M

Mike in Django [ru] #STAY HOME
Andrei Ivashkevich
class LevelShortSerializer(serializers.ModelSerializer):
   class Meta:
       model = Level
       fields = ('name',)


class QuestionSerializer(serializers.ModelSerializer):
   level = LevelShortSerializer()
   class Meta:
       model = Question
       fields = '__all__'
Спасибо большое.
источник

VV

Valentin Valentinovich in Django [ru] #STAY HOME
Mike
Привет.
DRF. У меня есть две модели Level and Question.  Я пробую получить все квешинсы из модели Question конкретного Level'a.
localhost:8000/app/SLUG/questions/ - получаю такой JSON
[
   {
       "id": 38,
       "name": "tra ta ta ta ta",
       "level": 4
   },
   {
       "id": 39,
       "name": "bla bla bla bla",
       "level": 4
   },
]

Как я могу вместо 'level': 4, отобразить имя level'a , например: 'level': первый левел.

from django.db import models
from django.template.defaultfilters import slugify

class Level(models.Model):

   name = models.CharField(max_length=100, unique=True)
   created = models.DateTimeField(auto_now_add=True)
   slug = models.SlugField(max_length=250, unique=True, null=True, blank=True)

   def __str__(self):
       return self.name

   def save(self, *args, **kwargs):
       self.slug = slugify(self.name)
       super(Level, self).save(*args, **kwargs)


class Question(models.Model):
   level = models.ForeignKey(Level, related_name='question', on_delete=models.CASCADE)
   name = models.CharField(max_length=650)

   def __st__(self):
       return self.name


my serializers.py
from rest_framework import serializers
from . models import Level, Question

class LevelSerializer(serializers.ModelSerializer):
 
 class Meta:

   model = Level
   fields = '__all__'

class QuestionSerializer(serializers.ModelSerializer):

 class Meta:

   model = Question
   fields = '_
_all__'
level = serializers.StringRelatedField() - по умолчанию отдаёт __str__ у объекта
источник

M

Mike in Django [ru] #STAY HOME
Я понял, спасибо
источник

VV

Valentin Valentinovich in Django [ru] #STAY HOME
Mike
Я понял, спасибо
ещё можно написать кастомный метод, более гибкий вариант для специфических случаев:

level = serializers.SerializerMethodField()

class Meta:
   ...

def get_level(self, obj):
   return obj.level.name
источник

in Django [ru] #STAY HOME
Парни, где искать проблему? Обернул websocket урлу в middleware, с фронта отправляю запрос с хедером Authorization, но до middleware он не доходит
источник

in Django [ru] #STAY HOME
источник

A

Ahmed in Django [ru] #STAY HOME
Использую django-rest-swagger. Возник вопрос - как вписывать свой responses на определенные статус коды? По дефолту стоит 200 без описания.
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Ahmed
Использую django-rest-swagger. Возник вопрос - как вписывать свой responses на определенные статус коды? По дефолту стоит 200 без описания.
если django-rest-swagger. не принципиален
попробуй drf-yasg
источник