Можно использовать некоторое пользовательское промежуточное программное обеспечение, чтобы прервать запрос и получить субдомен от него. Следующий код получит субдомен и перенаправление к представлению инвертирование именованного url.
Помещенный это в middleware.py файл в Вашем приложении.
Удостоверяются, что Вы настраиваете промежуточное программное обеспечение в своем settings.py файле.
Удостоверяются, что Вы назвали свое представление в Примечании urls.py
middleware.py
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
import re
subdomain_pattern = re.compile('(?P.*?)\..*?')
class SubdomainMiddleware(object):
def process_request(self, request):
match = subdomain_pattern.match(request.get_host())
subdomain = match.group('subdomain')
redirect_url = reverse('groups_detail', args=[subdomain])
return HttpResponseRedirect(redirect_url)
urls.py
from django.conf.urls.defaults import *
urlpatterns = patterns('',
url(r'^groups/(?P.+)/ : этот код не тестируется.
Перенаправление может изменить появление URL. Если Вы хотите избежать этого, просто назовите связанное представление, получите его результат и возвратите его в HttpResponse()
.
, 'groups.views.detail', {}, name='group_detail'),
)
: этот код не тестируется.
Перенаправление может изменить появление URL. Если Вы хотите избежать этого, просто назовите связанное представление, получите его результат и возвратите его в HttpResponse()
.
Я считаю, что включение android:onClick
было очень плохой идеей.
android:onClick
вы можете даже забыть, что у вас есть кнопка в макете или какой метод обрабатывает ее событие onClick
. Я бы посоветовал вам заняться программным определением OnClickListener
и строго разделить проблемы, как указал Кори Санволд в своем комментарии.
Вы могли бы рассмотреть использование вместо onTouchListener. Я обнаружил, что это быстрее, особенно если вы хотите, чтобы действие происходило в прессе, а не на выходе.
Я пытаюсь подумать о том, как это проверить ... Но я считаю, что между ними нет разницы в производительности, это просто разные интерфейсы для одной и той же вещи.
Я использую android:onClick
, когда мне просто нужно, чтобы мой Button
был активным.
Если мне нужно сделать что-то еще с Button
, например включить / отключить его, я бы использовал setOnClickListener()
, как сказал mgv.
Также помните, что android:onClick
не работает в Android 1.5.