Я создаю API с помощью Django Rest Framework и постоянно сталкиваюсь с проблемой, из-за которой я не могу извлечь ни одного элемента из моей модели django в браузере.
У меня есть две конечные точки: одна получает потребителя по идентификатору, а другая — заполняет потребителей. Тот, который получает всех потребителей, работает нормально, и я могу загрузить его в браузер, но когда дело доходит до захвата одного элемента, но идентификатор, который является UUID, кажется, терпит неудачу или даже больше, поэтому он продолжает попадать в 404.
Я проверил, что идентификатор существует в БД и там есть записи
Просто хочу отметить, что это все фиктивные данные
Views.py
@api_view(["GET"])
def get_power_consumer_by_id(request, power_consumer_id):
power_consumer = get_object_or_404(PowerConsumer, id=power_consumer_id)
serializer = PowerConsumerSerializer(power_consumer)
return Response(
serializer.data,
status=status.HTTP_200_OK
)
@api_view(["GET"])
def get_power_consumer(request):
if request.method == "GET":
try:
power_consumer = PowerConsumer.objects.all()
serializer = PowerConsumerSerializer(power_consumer, many=True)
return Response(serializer.data, status=status.HTTP_200_OK)
except Exception:
return Response(
{"error": "Failed to get power consumer data"},
status=status.HTTP_500_INTERNAL_SERVER_ERROR
)
Шаблоны URL
urlpatterns = [
path("v1/power_consumer//", get_power_consumer_by_id),
path("v1/power_consumer/", get_power_consumer)
]
Ответ JSON
[{"id":"bbbbbbb2-bbbb-bbbb-bbbb-bbbbbbbbbbbb","account_number":"PC-0002","billing_mode":"MANUAL_INVOICE","billing_cycle":"MONTHLY","billing_day_of_month":20,"billing_time":"02:00:00","predicted_bill_kobo":1200000,"deficit_amount_kobo":0,"is_at_risk":false,"next_billing_at":"2026-02-20T02:00:00Z","last_billed_at":"2026-01-20T02:00:00Z","supplier":"aaaaaaa1-aaaa-aaaa-aaaa-aaaaaaaaaaaa"},{"id":"bbbbbbb3-bbbb-bbbb-bbbb-bbbbbbbbbbbb","account_number":"PC-0003","billing_mode":"AUTO_CHARGE","billing_cycle":"WEEKLY","billing_day_of_month":null,"billing_time":"02:00:00","predicted_bill_kobo":300000,"deficit_amount_kobo":50000,"is_at_risk":true,"next_billing_at":"2026-01-29T02:00:00Z","last_billed_at":"2026-01-22T02:00:00Z","supplier":"aaaaaaa1-aaaa-aaaa-aaaa-aaaaaaaaaaaa"},{"id":"bbbbbbb4-bbbb-bbbb-bbbb-bbbbbbbbbbbb","account_number":"PC-0004","billing_mode":"MANUAL_INVOICE","billing_cycle":"BIWEEKLY","billing_day_of_month":null,"billing_time":"02:00:00","predicted_bill_kobo":800000,"deficit_amount_kobo":150000,"is_at_risk":false,"next_billing_at":"2026-01-28T02:00:00Z","last_billed_at":"2026-01-14T02:00:00Z","supplier":"aaaaaaa1-aaaa-aaaa-aaaa-aaaaaaaaaaaa"},{"id":"bbbbbbb5-bbbb-bbbb-bbbb-bbbbbbbbbbbb","account_number":"PC-0005","billing_mode":"AUTO_CHARGE","billing_cycle":"DAILY","billing_day_of_month":null,"billing_time":"02:00:00","predicted_bill_kobo":45000,"deficit_amount_kobo":0,"is_at_risk":false,"next_billing_at":"2026-01-26T02:00:00Z","last_billed_at":"2026-01-25T02:00:00Z","supplier":"aaaaaaa1-aaaa-aaaa-aaaa-aaaaaaaaaaaa"}]
Код модели
class PowerConsumer(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
supplier = models.ForeignKey(PowerSupplier, on_delete=models.CASCADE)
account_number = models.CharField(max_length=100, unique=True)
billing_mode = models.CharField(max_length=50)
billing_cycle = models.CharField(max_length=50)
billing_day_of_month = models.PositiveSmallIntegerField(null=True, blank=True)
billing_time = models.TimeField(default='02:00')
predicted_bill_kobo = models.BigIntegerField(default=0)
deficit_amount_kobo = models.BigIntegerField(default=0)
is_at_risk = models.BooleanField(default=False)
next_billing_at = models.DateTimeField(null=True, blank=True)
last_billed_at = models.DateTimeField(null=True, blank=True)
def __str__(self):
return f"Consumer {self.id}"
Подробнее здесь: https://stackoverflow.com/questions/798 ... tem-in-api
DRF не может найти существующий элемент модели в API ⇐ Python
Программы на Python
-
Anonymous
1769410936
Anonymous
Я создаю API с помощью Django Rest Framework и постоянно сталкиваюсь с проблемой, из-за которой я не могу извлечь ни одного элемента из моей модели django в браузере.
У меня есть две конечные точки: одна получает потребителя по идентификатору, а другая — заполняет потребителей. Тот, который получает всех потребителей, работает нормально, и я могу загрузить его в браузер, но когда дело доходит до захвата одного элемента, но идентификатор, который является UUID, кажется, терпит неудачу или даже больше, поэтому он продолжает попадать в 404.
Я проверил, что идентификатор существует в БД и там есть записи
Просто хочу отметить, что это все фиктивные данные
Views.py
@api_view(["GET"])
def get_power_consumer_by_id(request, power_consumer_id):
power_consumer = get_object_or_404(PowerConsumer, id=power_consumer_id)
serializer = PowerConsumerSerializer(power_consumer)
return Response(
serializer.data,
status=status.HTTP_200_OK
)
@api_view(["GET"])
def get_power_consumer(request):
if request.method == "GET":
try:
power_consumer = PowerConsumer.objects.all()
serializer = PowerConsumerSerializer(power_consumer, many=True)
return Response(serializer.data, status=status.HTTP_200_OK)
except Exception:
return Response(
{"error": "Failed to get power consumer data"},
status=status.HTTP_500_INTERNAL_SERVER_ERROR
)
Шаблоны URL
urlpatterns = [
path("v1/power_consumer//", get_power_consumer_by_id),
path("v1/power_consumer/", get_power_consumer)
]
Ответ JSON
[{"id":"bbbbbbb2-bbbb-bbbb-bbbb-bbbbbbbbbbbb","account_number":"PC-0002","billing_mode":"MANUAL_INVOICE","billing_cycle":"MONTHLY","billing_day_of_month":20,"billing_time":"02:00:00","predicted_bill_kobo":1200000,"deficit_amount_kobo":0,"is_at_risk":false,"next_billing_at":"2026-02-20T02:00:00Z","last_billed_at":"2026-01-20T02:00:00Z","supplier":"aaaaaaa1-aaaa-aaaa-aaaa-aaaaaaaaaaaa"},{"id":"bbbbbbb3-bbbb-bbbb-bbbb-bbbbbbbbbbbb","account_number":"PC-0003","billing_mode":"AUTO_CHARGE","billing_cycle":"WEEKLY","billing_day_of_month":null,"billing_time":"02:00:00","predicted_bill_kobo":300000,"deficit_amount_kobo":50000,"is_at_risk":true,"next_billing_at":"2026-01-29T02:00:00Z","last_billed_at":"2026-01-22T02:00:00Z","supplier":"aaaaaaa1-aaaa-aaaa-aaaa-aaaaaaaaaaaa"},{"id":"bbbbbbb4-bbbb-bbbb-bbbb-bbbbbbbbbbbb","account_number":"PC-0004","billing_mode":"MANUAL_INVOICE","billing_cycle":"BIWEEKLY","billing_day_of_month":null,"billing_time":"02:00:00","predicted_bill_kobo":800000,"deficit_amount_kobo":150000,"is_at_risk":false,"next_billing_at":"2026-01-28T02:00:00Z","last_billed_at":"2026-01-14T02:00:00Z","supplier":"aaaaaaa1-aaaa-aaaa-aaaa-aaaaaaaaaaaa"},{"id":"bbbbbbb5-bbbb-bbbb-bbbb-bbbbbbbbbbbb","account_number":"PC-0005","billing_mode":"AUTO_CHARGE","billing_cycle":"DAILY","billing_day_of_month":null,"billing_time":"02:00:00","predicted_bill_kobo":45000,"deficit_amount_kobo":0,"is_at_risk":false,"next_billing_at":"2026-01-26T02:00:00Z","last_billed_at":"2026-01-25T02:00:00Z","supplier":"aaaaaaa1-aaaa-aaaa-aaaa-aaaaaaaaaaaa"}]
Код модели
class PowerConsumer(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
supplier = models.ForeignKey(PowerSupplier, on_delete=models.CASCADE)
account_number = models.CharField(max_length=100, unique=True)
billing_mode = models.CharField(max_length=50)
billing_cycle = models.CharField(max_length=50)
billing_day_of_month = models.PositiveSmallIntegerField(null=True, blank=True)
billing_time = models.TimeField(default='02:00')
predicted_bill_kobo = models.BigIntegerField(default=0)
deficit_amount_kobo = models.BigIntegerField(default=0)
is_at_risk = models.BooleanField(default=False)
next_billing_at = models.DateTimeField(null=True, blank=True)
last_billed_at = models.DateTimeField(null=True, blank=True)
def __str__(self):
return f"Consumer {self.id}"
Подробнее здесь: [url]https://stackoverflow.com/questions/79876132/drf-unable-to-find-existing-model-item-in-api[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия