Tôi đã có một mô hình trong Django, mã ví dụ dưới đây (không mã thực tế của tôi):Kiểm soát Django ModelForm đầu ra
class Department(models.Model):
name = models.CharField(max_length=100)
abbreviation = models.CharField(max_length=4)
Hãy nói rằng tôi làm như sau trong vỏ Django:
>>> Department(name='Computer Science',abbreviation='C S ').save()
>>> Department(name='Mathematics',abbreviation='MATH').save()
>>> Department(name='Anthropology',abbreviation='ANTH').save()
Bây giờ tôi có bốn phòng ban được lưu trữ trong cơ sở dữ liệu của tôi. Giả sử chúng ta có một lớp học, Course
, mà thuộc về một Department
:
class Course(models.Model):
department = models.ForeignKey('Department')
number = models.IntegerField()
class CourseForm(ModelForm):
class Meta:
model = Course
Nếu tôi làm cho đối tượng ModelForm
trực tiếp trong một mẫu bằng cách chỉ referncing một biến, nói form
, mà đã truyền lại, Cục xuất hiện trong một hộp thả xuống (hộp chọn HTML). Càng xa càng tốt.
Vấn đề là: các mục trong hộp chọn được sắp xếp theo ID. Vì vậy, họ xuất hiện như:
- Khoa học máy tính
- Toán
- Nhân học
Nhưng, tôi muốn họ được sắp xếp theo thứ tự abc, tức là
- Nhân học
- Khoa học máy tính
- Toán
Làm cách nào tôi có thể thay đổi cách các mục này được sắp xếp theo mã số ModelForm
hoặc trong mã Model
, thay vì trong mẫu?
Và nói chung, làm cách nào tôi có thể tùy chỉnh cách một trường hoặc tiện ích cụ thể hoạt động khi được tạo bởi một ModelForm
?
Cảm ơn! Điều này không chính xác những gì tôi đang tìm kiếm. –
Wow - câu trả lời tuyệt vời! – sage