약 2 주 전에 Python과 Django에 소개되었습니다. Django 1.6과 Python 3.3을 사용하고있다.장고 관리에서 외래 키를 선택하여 "정보"표시
내 프로젝트는 주문 관리 시스템입니다. 작동 원리는 다음과 같습니다. 고객이 상점에 와서 물품을 주문합니다. 해당 항목은 주문서에 기록되며 직원이 공급자에게 주문할 때까지 유휴 상태입니다. 기본적으로 customer_name, order_date, status 등의 정보를 수집하는 Order 테이블이 있습니다. 그런 다음 Order의 모든 요소가 포함 된 EmployeeOrder 테이블 (Order와의 1-1 관계)이 있지만 employee_placed 및 employee_order_date (거의 Order를 확장).
내가하려는 것은 사용자가 EmployeeOrder를 배치하여 어떤 고객 주문을 수행할지 선택할 때 고객 주문 정보가 표시되도록 코드를 작성하는 것입니다. 나는 그것이 현재 어떻게 표시되는지는 상관하지 않는다. 팝업은 정상적으로 작동 할 것이다. 나는 그것을하는 법을 모른다. 그리고 나는 어디에도 그것을 만나지 않았다. 현재 드롭 다운 상자에는 Order 1, Order 2 등이 표시됩니다. 사용자는 어떤 항목이 어떤 순서로 포함되었는지 기억하지 않으므로 주문 정보를 표시해야합니다. 어쨌든, 여기 내 코드는 지금까지의 :
models.py
class Order(models.Model):
customer_order_date = models.DateTimeField('Date helped')
customer_placed = models.ForeignKey(Customer)
employee_helped = models.ForeignKey(Employee)
STATUS_OF_ORDER = (
('IDLE', 'Not yet ordered'),
('SHIP', 'Awaiting delivery'),
('PICK', 'Ready for pickup'),
('UNAV', 'Unavailable for order'),
('BACK', 'Backordered - awaiting delivery'),
('CANC', 'Canceled by customer'),
('ARCH', 'Fulfilled - archived'),
)
status = models.CharField(max_length=4, choices=STATUS_OF_ORDER,
default='IDLE', editable=False)
paid = models.BooleanField('Paid', default=False)
ship = models.BooleanField('Ship', default=False)
comments = models.CharField(max_length=200, blank=True, null=True)
item = models.ManyToManyField(Item)
def __str__(self):
return 'Order ' + str(self.id)
def is_idle(self):
return self.status == 'IDLE'
class EmployeeOrder(models.Model):
order = models.OneToOneField(Order, primary_key=True,
limit_choices_to={'status': 'IDLE'})
employee_order_date = models.DateTimeField('Date ordered')
employee_placed = models.ForeignKey(Employee)
admin.py
class OrderAdmin(admin.ModelAdmin):
list_display = ('customer_order_date', 'customer_placed')
raw_id_fields = ('customer_placed', 'item')
class EmployeeOrderAdmin(admin.ModelAdmin):
list_display = ('employee_order_date', 'employee_placed')
모든 모든 도움 감사합니다 나는 아직도 내가 총 멍청한 놈 때임을 인정으로 파이썬과 장고에 온다!
너는 .... 훌륭한 일을 알고있다! 나는 그것을 생각하는 길이었다! 나는 적어도 이론적으로는 선택 될 수있는 명령이 많지 않았기 때문에 생각했다. 드롭 다운 상자는 괜찮을 것이다. 불행히도 드롭 다운을 사용할 때 주문 데이터를 볼 수 없습니다. 고마워요! – nblakey
좋아요! 그것이 내가하는 방법이다. 드롭 다운 상자에 개체의 \ _ \ _ str__ 또는 \ _ \ _ unicode__ 메서드가 반환하는 것이 무엇이든 표시되지만 일반적으로 이러한 메서드를 디버깅 이외의 방법으로 사용하지 않으려 고합니다. – DavidM
당신은 그 생각이 맞습니다. 내가 말했듯이, 그것은 매우 서술 적이 지 않습니다. 이 방법은 훨씬 낫다. 이제 항목 이름이 순서대로 표시되도록 조인 테이블에서 작업해야합니다. – nblakey