Как вывести информацию о хосте из модели Django при использовании ModelViewSet из REST Framework
Я использую Django REST Framework, который позволит пользователям сохранять информацию и генерировать изображение QR-кода, которое будет URL профиля пользователя, например: http://127.0.0.1:8000/user/detail/fahad-md-kamal-fd028af3/
"Что-то вроде
Как я могу получить адрес хоста из Django Model, чтобы использовать его для генерации QR-кода?
DRF Модель
class UserInfo(models.Model):
def save(self, *args, **kwargs):
if not self.slug:
self.slug =f'{slugify(self.name)}'
qrcode_image = qrcode.make(f"{host}/{self.slug}/")
super(UserInfo, self).save(*args, **kwargs)
Класс сериализатора
class UserBaseReadSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = models.UserBase
fields = (
'url',
'phone',
'name',
'address',
'qr_code',
'slug',
)
View Class:
class UserInfoViewSet(viewsets.ModelViewSet):
serializer_class = serializers.UserBaseSerializer
queryset = models.UserInfo.objects.all()
Когда я делал это с помощью стандартного Django и функционального представления, я делал это следующим образом:
Функциональный вид:
def add_user_info(request):
if request.method == 'POST':
form_data = UserInfomationForm(request.POST)
if form_data.is_valid():
obj = form_data.save(commit=False)
obj.save(host =request.META['HTTP_ORIGIN'])
Отмена метода сохранения класса модели
class UserInfo(models.Model):
def save(self, host=None, *args, **kwargs):
if not self.slug:
self.slug =f'{slugify(self.name)}-{str(uuid.uuid4())[:8]}'
qrcode_image = qrcode.make(f"{host}/{self.slug}/")
super(UserInfo, self).save(*args, **kwargs)