SHOW:
|
|
- or go back to the newest paste.
| 1 | # forms.py | |
| 2 | class ProfileForm(forms.ModelForm): | |
| 3 | ||
| 4 | city = forms.ModelChoiceField(queryset=City.objects.all()) | |
| 5 | ||
| 6 | class Meta: | |
| 7 | model = Profile | |
| 8 | fields = ['country', 'region'] | |
| 9 | ||
| 10 | # views.py | |
| 11 | def signup(request): | |
| 12 | message = '' | |
| 13 | ||
| 14 | if request.method == 'POST': | |
| 15 | pform = ProfileForm(request.POST) | |
| 16 | pform.is_valid() | |
| 17 | return HttpResponse('%s' % pform)
| |
| 18 | else: | |
| 19 | - | try: |
| 19 | + | ip = request.META.get('REMOTE_ADDR', '') or request.META.get(
|
| 20 | - | ip = request.META.get('REMOTE_ADDR', '') or request.META.get(
|
| 20 | + | 'HTTP_X_FORWARDED_FOR', '') |
| 21 | - | 'HTTP_X_FORWARDED_FOR', '') |
| 21 | + | info = get_ip_info(ip) |
| 22 | - | info = get_ip_info(ip) |
| 22 | + | region = Region.objects.filter(name__contains=info['region'])[0] |
| 23 | - | region = Region.objects.filter(name__contains=info['region'])[0] |
| 23 | + | city = City.objects.filter(name__contains=info['city'])[0] |
| 24 | - | city = City.objects.filter(name__contains=info['city'])[0] |
| 24 | + | |
| 25 | pform = ProfileForm(initial={
| |
| 26 | 'region': region.id, | |
| 27 | 'city': city.id, | |
| 28 | 'country': 1 | |
| 29 | }) | |
| 30 | pform.fields['city'].queryset = region.city_set.all() | |
| 31 | ||
| 32 | return render(request, 'authenticate/signup.html', {
| |
| 33 | 'pform': pform, | |
| 34 | 'message': message, | |
| 35 | }) | |
| 36 | - | }) |
| 36 | + | |
| 37 | # models.py тот же |