from django.views.generic import View, ListView, DetailView
class AddUserPhoneToContextMixin(View):
def get_context_data(self, **kwargs):
'''
Add phone number to context data
'''
ctx = super().get_context_data(**kwargs)
try:
user = User.objects.get(pk=1)
ctx['phone_number'] = user.userprofile.phone_number
finally:
return ctx
class ItemListView(AddUserPhoneToContextMixin, ListView):
model = Item
paginate_by = 9
class ItemDetailView(AddUserPhoneToContextMixin, DetailView):
model = Item
try:
phone_number = user.userprofile.phonenumber
except UserProfile.DoesNotExists:
raise NotFound('Warning! User profile did not created!')
self.Links = Links
self.Potok = Potok
driver.get(Links[Linkss])
den = 'ПОНЕДЕЛЬНИК'
'#Алгебра:' + handle_admin_dz.Algebra
Algebra = bot.send_message(message.chat.id, "Запишите дз")
def handle_admin_dz(message):
if message.text in {
"Алгебра", "Геометрия", "Русский", ...
}:
response_text = "Запишите дз"
else:
response_text = "Неизвестный раздел!"
return response_text
@bot.message_handler(content_types='text')
def handle_text(message):
if message.text == "Понедельник":
response_text = handle_admin_dz(message)
den = 'ПОНЕДЕЛЬНИК\n#Алгебра: ' + response_text
Но ведь для этого надо загружать весь Json в переменную, обрабатывать, удалять все из json файла и загружать уже обработанную версию. И если json файл будет больших размеров, то это создаст лишнюю нагрузку на железо.
class Model2(models.Model):
m2m_field = models.ManyToManyField(to=Model1, related_name='second_models')
m1 = Model1.object.get(...) #он просто у меня есть
second_model_queryset = m1.second_models.all()
def get(self, request, **kwargs):
if not request.user.is_staff:
raise PermissionDenied
super().get(request, **kwargs)
# my_project/my_app/utils.py
from rest_framework.exceptions import APIException
from rest_framework.views import exception_handler
def custom_exception_handler(exc, context):
# Call REST framework's default exception handler first,
# to get the standard error response.
response = exception_handler(exc, context)
# Now add the HTTP status code to the response.
if response is not None:
if response.status_code == 500:
# My custom 500 error handler.
pass
return response
# settings.py
REST_FRAMEWORK = {
'EXCEPTION_HANDLER': 'my_project.my_app.utils.custom_exception_handler'
}