में उपयोगकर्ता नाम मौजूद है या नहीं, मैं Django प्रोजेक्ट पर काम कर रहा हूं, जहां उपयोगकर्ता अपने उपयोगकर्ता नाम को अपने पहले और अंतिम नाम के साथ एक रूप में बदल सकेंगे। Form.py में, मैं यह पता लगाने की कोशिश कर रहा हूं कि उपयोगकर्ता मौजूद है या नहीं। यदि ऐसा है, तो यह एक त्रुटि प्रदर्शित करना चाहिए। समस्या यह है कि यदि उपयोगकर्ता अपना पहला और अंतिम नाम बदलना चाहता है और इनपुट में अपना उपयोगकर्ता नाम छोड़ देता है, तो यह एक सत्यापन त्रुटि उठाता है। जाहिर है, वह उपयोगकर्ता नाम पहले से मौजूद है। क्या यह जांचने का कोई तरीका है कि क्या यह वर्तमान में लॉग इन उपयोगकर्ता के उपयोगकर्ता नाम के बराबर है और त्रुटि प्रदर्शित करने से बचें?Django
class ChangeNameForm(forms.ModelForm):
username = forms.CharField(max_length=30)
first_name = forms.CharField(max_length=255)
last_name = forms.CharField(max_length=255)
def clean_username(self):
username = self.cleaned_data['username']
try:
user = User.objects.get(username=username)
except user.DoesNotExist:
return username
raise forms.ValidationError(u'Username "%s" is already in use.' % username)
धन्यवाद।
forms.py
from django.contrib.auth.forms import UserChangeForm
from django.contrib.auth.models import User
class MyUserChangeForm(UserChangeForm):
def __init__(self, *args, **kwargs):
super(MyUserChangeForm, self).__init__(*args, **kwargs)
del self.fields['password']
class Meta:
model = User
fields = ('username', 'first_name')
views.py
def home(request):
if request.method == 'POST':
form = MyUserChangeForm(request.POST, instance=request.user)
if form.is_valid():
form.save()
else:
form = MyUserChangeForm(instance=request.user)
return render(request, 'change_user.html', {"form": form})
धन्यवाद आदमी, यह वही है जो मैं ढूंढ रहा हूं। – lukas
हेय्या @ लुकास भी 'user.objects.filter (उपयोगकर्ता नाम = उपयोगकर्ता नाम) कर सकते हैं .count() ' – wonderwhy