Tôi đã tạo một biểu mẫu Django gửi đến một trang trên một tên miền khác (mà tôi không kiểm soát). Ý tưởng là tôi có một mẫu được tạo kiểu gọn gàng, đẹp mắt phù hợp gọn gàng vào trang web của riêng tôi và đưa người dùng đến nơi khác khi được gửi.Ghi đè tên của trường biểu mẫu Django
Tuy nhiên,
- Nếu mà hình thức khác thay đổi tên của bất kỳ lĩnh vực của mình, tôi cần phải thay đổi tên của các trường trong hình thức của tôi và sau đó thay đổi những cái tên đó ở khắp mọi nơi khác trong ứng dụng của tôi - kể từ khi
name
attr được kết hợp với tên của thuộc tính được sử dụng cho trường. - Nếu biểu mẫu từ xa sử dụng tên ngớ ngẩn thì đối tượng biểu mẫu của tôi cũng phải có các thuộc tính có tên ngớ ngẩn gây ô nhiễm mã của ứng dụng của tôi.
- Nếu những tên đó xảy ra là reserved words in Python (ví dụ:
from
), thì sẽ khó hoặc không thể tạo biểu diễn đối tượng biểu mẫu Django.
Có cách nào để chỉ định một chuỗi khác nhau để sử dụng cho thuộc tính 'tên' khi trường được hiển thị không? Vì vậy, hãy tách biểu mẫu HTML khỏi lớp đại diện cho nó.
này sẽ cần hai thành phần:
- Ghi đè giá trị tên trong widget
- Tận dụng hình thức đọc giá trị này từ request.POST khi nó được ràng buộc
Tôi chỉ cần bước 1 trong trường hợp này, nhưng bước 2 có liên quan để giải quyết các vấn đề tôi đã liệt kê ở trên thông thường hơn
Đây là một giải pháp tuyệt vời cho vấn đề của tôi và vấn đề chung của attrs tên trường được gắn với tên thuộc tính của đối tượng trường. Tuy nhiên, nếu bạn cần điều này thì bạn có thể có một vấn đề. Trước tiên hãy kiểm tra xem câu trả lời của S.Lott có phù hợp với bạn hay không. Nó không có tác dụng với tôi, đó là lý do tại sao tôi hỏi câu hỏi này. – adamnfish
@Daniel: Gần đây tôi đã thực hiện điều chính xác như bạn đã đăng trên câu trả lời của mình. Bạn có thể làm rõ lý do tại sao bạn cho rằng đây là lạm dụng API khủng khiếp? cảm ơn. –
Thành thật mà nói, điều này đã gần bốn năm trước và tôi không thể nhớ tại sao tôi lại nghĩ vậy. –