Форум сайта python.su
Застрял в одном месте, подскажите пожалуйста
# models.py
#Заказ class Order(models.Model): title = models.CharField(max_length=100, verbose_name=u"Название",) #Заказчик class Customer(models.Model): organization = models.CharField(max_length=50, unique=True, verbose_name=u"Организация",) # Контакты заказчика class ContactCustomer(models.Model): customer = models.ForeignKey(Customer, related_name='contacts', verbose_name=u"Клиент",) orders = models.ManyToManyField(Order, blank=True, verbose_name=u"Заказы",)
def ReadOrderView(request): orders = Order.objects.all() #Заказчик customers=[] for order in orders: empty_contact = ContactCustomer.objects.filter(orders=order.id)[0] customers.append(empty_contact.customer) print(customers) # Поиск q = False if 'q' in request.GET: q = request.GET['q'] orders = Order.objects.filter(Q(id__icontains=q)|Q(title__icontains=q)) #как сделать поиск заказа по названию организации return render(request, 'order_read.html', {'orders': orders, 'query':q, 'customers':customers, }, content_type="text/html")
<form class="form-search" action="/orders/read" method="get"> <input type="text" class="input-medium search-query" placeholder="поиск" name="q"> <input type="submit" class="btn" value="найти"> </form> {% if query %} <p>Вы искали: <strong>{{ query }}</strong></p> {% endif %} <table class="table table-bordered" width="70%"> {% if orders %} <tr> <th>Название</th> <th>Заказчик</th> </tr> {% for line in orders %} <tr class="success" > <td colspan=2 > <a href="/orders/update/{{ line.id }}/">Заказ N {{ line.id }}</a> </td> </tr> <tr> <td><a href="/orders/update/{{ line.id }}/">{{ line.title }}</a></td> <td> {% for customer in customers %} <a href="/customers/update/{{ customer.id }}/">{{ customer.organization }}</a> {% endfor %} <!-- # как вывести название организации текущего заказа? {{ forloop.counter0 }} ??? --> </td> </tr> {% endfor %} </table> {% else %} <p> По Вашему запросу ничего не найдено </p> {% endif %}
Отредактировано roach (Март 5, 2013 04:57:33)
Офлайн
roach
#Заказ
class Order(models.Model):
title = models.CharField(max_length=100, verbose_name=u“Название”,)
#Заказчик
class Customer(models.Model):
organization = models.CharField(max_length=50, unique=True, verbose_name=u“Организация”,)
# Контакты заказчика
class ContactCustomer(models.Model):
customer = models.ForeignKey(Customer, related_name='contacts', verbose_name=u“Клиент”,)
orders = models.ManyToManyField(Order, blank=True, verbose_name=u“Заказы”,)
#Заказчик class Customer(models.Model): organization = models.CharField() #Заказ class Order(models.Model): title = models.CharField() customer = models.ForeignKey(Customer)
Отредактировано inoks (Март 5, 2013 10:11:20)
Офлайн
inoksДело в том что у Заказчика за Заказы отвечают разные люди, поэтому так и сделано
Офлайн
1) Первый вопрос подсказали, сделал вот так:
#models.py
class Order(models.Model): title = models.CharField(max_length= 100, verbose_name= u"Название" ,) def get_customer(self): return self.contactcustomer_set.all()[0]
{% for order in orders %} {{ order.get_customer.customer.organization }} {% endfor %}
Офлайн
Это глупость какая-то.
return self.contactcustomer_set.all()[0]
Отредактировано FishHook (Март 5, 2013 10:50:59)
Офлайн
FishHookа как еще?
Это глупость какая-то.
Отредактировано roach (Март 5, 2013 11:03:43)
Офлайн
roach
а как еще?
roachТо есть в модели ContactCustomer будет еще ответственное лицо заказчика?
Дело в том что у Заказчика за Заказы отвечают разные люди, поэтому так и сделано
Офлайн
FishHookДа именно так, может быть несколько ответственных.
То есть в модели ContactCustomer будет еще ответственное лицо заказчика?
Отредактировано roach (Март 5, 2013 11:17:57)
Офлайн
class Product(Model): name = CharField(...) class Contragent(Model): name = CharField(...) addres = CharField(...) phone = CharField(...) class ConrtagentPerson(Model): name = CharField(...) second_name = CharField(...) phone = CharField(...) email = EmailField(...) company = ForeignKey(Contragent) class Order(Model): product = ForeignKey(Product) person = ForeignKey(ConrtagentPerson)
Офлайн
В твоем случае, у заказа может быть только 1 контакт, а у меня несколько
Не в моделях дело, FishHook
Мне сейчас поиск нужно организовать по полям вот такой таблицы
order.title | order.description | customer.organization
Отредактировано roach (Март 5, 2013 13:16:50)
Офлайн