Мой объект представления 'не имеет атрибута' {мой атрибут} в Django
Фон
Я пытаюсь загрузить пользовательский url (например, www.mysite.com/order-2523432), который покажет пользователю подробную информацию о его заказе.
Проблема
Я пытаюсь использовать метод order_id в моем models.py, чтобы получить правильный url. Проблема в том, что я получаю ошибку:
'OrderDetailView' object has no attribute 'order_id'
Кто-нибудь знает, что я могу сделать, чтобы заставить order_id работать?
Мой views.py:
class OrderDetailView(DetailView):
model = Orders
template_name = "customer/orders.html"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
try:
context["orders"] = get_orders(self)
except RequestException as e:
logger.exception(e)
return context
Мой utils.py:
def get_orders(orders):
url = f"mysite.com/customer/{orders.order_id}"
method = "GET"
content_type = "application/json"
header = Sender(
credentials etc
).request_header
response = requests.request(
headers etc
)
response.raise_for_status()
return response.json()
Мой models.py:
class Orders(CustomModel):
table_name = models.CharField(max_length=256, unique=True)
@property
def order_id(self):
return f"order-{self.table_name}"
def get_absolute_url(self):
return reverse("order:edit", args=(self.id,))
вы должны использовать self.object или context['object'] или get_object() вместо передачи self
пожалуйста, попробуйте это:
class OrderDetailView(DetailView):
model = Orders
template_name = "customer/orders.html"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
try:
context["orders"] = get_orders(context['object'])
except RequestException as e:
logger.exception(e)
return context