Удалена устаревшая логика адресов клиентов

Исправлена ошибка AttributeError при создании нового клиента.
Адреса теперь привязаны к заказам, а не к клиентам.

- Удалено обращение к customer.addresses в customer_detail view
- Убрана секция "Адреса доставки" из шаблона customer_detail.html
- Исправлена команда create_demo_orders для работы с новой структурой

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-11 17:04:20 +03:00
parent 8cc8cd1339
commit 0973121b39
3 changed files with 4 additions and 43 deletions

View File

@@ -19,7 +19,7 @@
<div class="row"> <div class="row">
<!-- Customer Info --> <!-- Customer Info -->
<div class="col-md-6"> <div class="col-md-12">
<div class="card mb-4"> <div class="card mb-4">
<div class="card-header"> <div class="card-header">
<h5>Информация о клиенте</h5> <h5>Информация о клиенте</h5>
@@ -82,39 +82,6 @@
</div> </div>
</div> </div>
</div> </div>
<!-- Addresses -->
<div class="col-md-6">
<div class="card mb-4">
<div class="card-header d-flex justify-content-between align-items-center">
<h5>Адреса доставки</h5>
<a href="#" class="btn btn-sm btn-outline-primary">Добавить адрес</a>
</div>
<div class="card-body">
{% if addresses %}
{% for address in addresses %}
<div class="border p-3 mb-3 rounded {% if address.is_default %}border-primary border-2{% endif %}">
{% if address.is_default %}
<span class="badge bg-primary mb-2">Адрес по умолчанию</span>
{% endif %}
<h6>{{ address.recipient_name }}</h6>
<p class="mb-1">
<strong>Адрес:</strong> {{ address.full_address }}, {{ address.district }}
</p>
{% if address.delivery_instructions %}
<p class="mb-1">
<strong>Инструкции:</strong> {{ address.delivery_instructions }}
</p>
{% endif %}
</div>
{% endfor %}
{% else %}
<p>У клиента нет сохраненных адресов доставки.</p>
{% endif %}
</div>
</div>
</div>
</div> </div>
</div> </div>
{% endblock %} {% endblock %}

View File

@@ -79,11 +79,9 @@ def customer_list(request):
def customer_detail(request, pk): def customer_detail(request, pk):
"""Детали клиента""" """Детали клиента"""
customer = get_object_or_404(Customer, pk=pk) customer = get_object_or_404(Customer, pk=pk)
addresses = customer.addresses.all()
context = { context = {
'customer': customer, 'customer': customer,
'addresses': addresses,
} }
return render(request, 'customers/customer_detail.html', context) return render(request, 'customers/customer_detail.html', context)

View File

@@ -108,12 +108,8 @@ class Command(BaseCommand):
# Устанавливаем адрес или магазин # Устанавливаем адрес или магазин
if is_delivery and addresses: if is_delivery and addresses:
# Для доставки выбираем адрес клиента или случайный # Для доставки выбираем случайный адрес (адреса теперь привязаны к заказам)
customer_addresses = list(customer.addresses.all()) order.delivery_address = random.choice(addresses)
if customer_addresses:
order.delivery_address = random.choice(customer_addresses)
else:
order.delivery_address = random.choice(addresses)
order.delivery_cost = Decimal(random.randint(200, 500)) order.delivery_cost = Decimal(random.randint(200, 500))
elif shops: elif shops:
order.pickup_shop = random.choice(shops) order.pickup_shop = random.choice(shops)