Полевое использование формы Django SelectDateWidget

Вы можете переопределить загрузку URL с помощью следующего кода. Если вы хотите самостоятельно обрабатывать загрузку URL, вернитесь true. Если URL-адрес должен быть открыт в WebView, верните false.

webview.setWebViewClient(new WebViewClient() {
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        // Insert logic here
    }
}

Если вы просто хотите открыть внешние ссылки, вы можете использовать следующий код. Если открытый URL-адрес начинается с базового URL-адреса вашего домена, возвращается false и URL-адрес открывается в WebView. В противном случае намерение ACTION_VIEW используется для открытия URL-адреса в браузере, и возвращается значение true.

webview.setWebViewClient(new WebViewClient() {
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        // Abort if no URL
        if (url == null || !(url.startsWith("http://") ||
                url.startsWith("https://"))) {
            return false;
        }

        // Abort if internal URL
        if (url.startsWith("http://www.myurl.com") || 
                url.startsWith("https://www.myurl.com")) {
            return false;
        }

        // Open external URL in browser
        startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
        return true;
    }
});

Примечание. Вы должны обрабатывать «http: // ...» и «https: // ...». Потому что метод может быть вызван для обоих.

6
задан timbonicus 1 May 2009 в 05:36
поделиться

3 ответа

Реальная проблема заключалась в том, что на SelectDateWidget нельзя ссылаться таким образом. Изменение кода для ссылки на него по-другому решило мою проблему:

from django.forms import extras
...
    DOB = forms.DateField(widget=extras.SelectDateWidget)

Кажется, это ограничение, которое нельзя ссылаться на package.package.Class из импортированного пакета. Решение импортирует дополнительные функции, поэтому ссылка является просто package.Class.

10
ответ дан 8 December 2019 в 13:48
поделиться

Ваш код отлично работает для меня, как написано. В таком случае проверьте наличие несоответствий между именем поля в модели и формой ( DOB и dob - это простая опечатка), и что вы создали экземпляр правильную форму на ваш взгляд, и передал ее в шаблон.

0
ответ дан 8 December 2019 в 13:48
поделиться

Из заявки: отсутствие документации для SelectDateWidget здесь: Билет № 7437.

Похоже, вам нужно использовать его следующим образом:

widget=forms.extras.widgets.SelectDateWidget()

Обратите внимание, пример скобок.

4
ответ дан 8 December 2019 в 13:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: