Универсальные представления обычно будут способом пойти, но в конечном счете Вы свободны обработать URL однако, Вы хотите. FormWizard делает вещи основанным на классах способом, также, как и некоторые приложения для УСПОКОИТЕЛЬНЫХ API.
В основном с URL Вам дают набор переменных и помещаете для обеспечения вызываемого, что вызываемый Вы обеспечиваете, полностью ваше дело - стандартный путь состоит в том, чтобы обеспечить функцию - но в конечном счете Django не ставит ограничений, что Вы делаете.
я действительно соглашаюсь, что еще несколько примеров того, как сделать это, были бы хороши, FormWizard является, вероятно, местом для запуска все же.
Прямо сейчас я не знаю о планах разрешить это. . Функция была запланирована и, по крайней мере частично (см. Комментарии), реализована в F # 4.0.
Я думаю, что единственная причина, по которой она сейчас запрещена, заключается в том, что ее нетривиально реализовать (особенно с типом F # вывод), и это редко возникает на практике (я припоминаю только одного клиента, когда-либо задававшего этот вопрос).
Учитывая бесконечное количество времени и ресурсов, я думаю, что это было бы разрешено (я могу представить, что это будет добавлено в будущую версию языка), но сейчас не похоже, что эта функция стоит усилий по поддержке. (Если вам известен убедительный аргумент, напишите нам по адресу fsbugs@microsoft.com.)
РЕДАКТИРОВАТЬ
В качестве эксперимента для любопытных я написал этот C #:
public interface IG<T>
{
void F(T x);
}
public class CIG : IG<int>, IG<string>
{
public void F(int x) { Console.WriteLine("int"); }
public void F(string x) { Console.WriteLine("str"); }
}
и сослался на него из F # (с комментариями, предлагающими результаты)
let cig = new CIG()
let idunno = cig :> IG<_> // type IG<int>, guess just picks 'first' interface?
let ii = cig :> IG<int> // works
ii.F(42) // prints "int"
let is = cig :> IG<string> // works
is.F("foo") // prints "str"
, так что это то, что обычно происходит с этим «граничным» материалом с F # - F # может нормально воспринимать эти вещи, даже если вы не можете создавать то же самое из языка.