Size: a a a

Django [ru] #STAY HOME

2020 June 03

DT

Dan Tyan in Django [ru] #STAY HOME
i.mntst
прости не понял )
практика показывает

что быстрее и правильнее, чтобы ответить на вопрос, посмотреть код
ну и код соответственно нужен максимально полный
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Akhma
Есть модель Answer содержит ответы на часто задаваемые вопросы, ответы добавляются с админки.

Возникла необходимость ссылаться на определенный ответ, привязка есть только id, но id будет отличаться на продакте и локально, да и вообще статика получается, если нужно будет поменять, придется лезть в код изза 1 идшника.

Проблема в том, что не могу придумать нормальный человеческий способ сделать это. Пытался context прокидывать, но проблема в том, что из известных мне способов получить этот элемент это только сделать запрос в модель по ее названию ответа. Что выглядит очень некрасиво да и вообще костыль, так делать нельзя.  Не могу придумать нормальный вариант решения, хелп
у тебя в темплейте что показывается? Вопросы? Вопросы с ответами на уровне моделей связаны? фк или м2м?
источник

i

i.mntst in Django [ru] #STAY HOME
класс models
class Lock(models.Model, AdminURLMixin):
   location = models.CharField(max_length=40, choices=LocationChoice.model_choices(),verbose_name=_('location'), null=False)
   type = models.CharField(max_length=40, choices=TypeChoice.model_choices(), verbose_name=_('type'))
   status = models.CharField(max_length=40, choices=StatusChoice.model_choices(), verbose_name=_('status'))
   building = models.ForeignKey(Building, on_delete=models.CASCADE, verbose_name=_('building'))
   emei = models.CharField(max_length=15,default='000000000000000')
   #account = models.ManyToManyField('accounts.Account')

   def __str__(self):
       return  str(self.id) + " - " + self.building.address


   def get_building(self):
       return  (self.building.id, self.building.address, self.building.coordinates)

   def accounts(self):
       return self.accounts.values("id")

   class Meta:
       verbose_name = _('Lock')
       verbose_name_plural = _('Locks')

Сам
запрос из views
class LockOpen(mixins.UpdateModelMixin, generics.GenericAPIView):
   queryset = Lock.objects.all()
   serializer_class = LockSerializer


   def post(self, request, *args, **kwargs):
       return self.partial_update(request, *args, **kwargs)

Urls
urlpatterns = [
                 url(r'^$', views.LockList.as_view()),
                 url(r'^(?P<pk>[0-9]+)/$', views.LockDetail.as_view()),
                 url(r'^(?P<pk>[0-9]+)/open/$', views.LockOpen.as_view()),
                 url(r'^(?P<emei>[0-9]+)/open/check/(?P<phone_number>[0-9]+)/$', views.check_lock),
                 url(r'^(?P<emei>[0-9]+)/status/$', views.status),

]
источник

i

i.mntst in Django [ru] #STAY HOME
Nikolay Cherniy
ну если ты не понимаешь проходит ли твой emei регулярку - покажи здесь может поймем 😉
клиентский запрос думаю не стоит показывать так как думаю там я все правильно сделал потому что сама ссылка сформировалась правильно вместо моего id там был нужный мне emei
источник

i

i.mntst in Django [ru] #STAY HOME
Ребята простите за нубские если вопросы )
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
i.mntst
клиентский запрос думаю не стоит показывать так как думаю там я все правильно сделал потому что сама ссылка сформировалась правильно вместо моего id там был нужный мне emei
этот нужный emei из каких символов состоит? только цифры? тире есть?
источник

i

i.mntst in Django [ru] #STAY HOME
Nikolay Cherniy
этот нужный emei из каких символов состоит? только цифры? тире есть?
emei = models.CharField(max_length=15,default='000000000000000') вот
источник

i

i.mntst in Django [ru] #STAY HOME
да, там цифры
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
закоментируй по пк
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
url(r'^(?P<pk>[0-9]+)/open/$', views.LockOpen.as_view()), вот это
источник

i

i.mntst in Django [ru] #STAY HOME
Nikolay Cherniy
url(r'^(?P<pk>[0-9]+)/open/$', views.LockOpen.as_view()), вот это
я конечно не комментировал но вместо него делал вот такую регулярку
url(r'^(?P<emei>[0-9]+)/open/$', views.LockOpen.as_view()),
источник

i

i.mntst in Django [ru] #STAY HOME
выдает 500 ошибку
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
i.mntst
я конечно не комментировал но вместо него делал вот такую регулярку
url(r'^(?P<emei>[0-9]+)/open/$', views.LockOpen.as_view()),
после этого файл сохранил, серевер перезапустил?
источник

i

i.mntst in Django [ru] #STAY HOME
это я сделал в самом начале
источник

i

i.mntst in Django [ru] #STAY HOME
Nikolay Cherniy
после этого файл сохранил, серевер перезапустил?
да, конечно, я почему то думал что моя беда POST запросе из views
источник

i

i.mntst in Django [ru] #STAY HOME
в самом запросе в views не надо как то передавать emei?)
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
i.mntst
в самом запросе в views не надо как то передавать emei?)
ты передаешь модель в которой как он по пк смотрит так и по полю может посмотреть, возможно есть какая-то особенность работы со старыми урлами, сейчас пас, помимо этого логика выглядит вполне рабочей
источник

i

i.mntst in Django [ru] #STAY HOME
Nikolay Cherniy
ты передаешь модель в которой как он по пк смотрит так и по полю может посмотреть, возможно есть какая-то особенность работы со старыми урлами, сейчас пас, помимо этого логика выглядит вполне рабочей
Спасибо, мб кто ещё откликнется )) а так мыслей больше у самого тоже нету )
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
i.mntst
Спасибо, мб кто ещё откликнется )) а так мыслей больше у самого тоже нету )
могу еще предложить внутри функции пост принтануть реквест, арги и кварги которые приходят и в случае с ид и с емеи, во-первых посмотришь что должно приходить когда работает, во-вторых поймешь отрабатывает ли до функции или до этого отваливается
источник

PA

Petro Alexeenko in Django [ru] #STAY HOME
Добрый день, созрел вопрос. Запущен сервер джанго, запущен  сервер реакта. Мне нужно иметь доступ к картинкам из папки media. Как это оформить?
источник