Hice una entrada de texto archivada con jquery autocompletar donde consulto a los usuarios. Entonces, si empiezo a escribir el nombre de un usuario, muestra los usuarios relacionados. Funciona bien, pero me gusta evitar que si al usuario no le gusta elegir de la lista emergente y posiblemente escriba todo el nombre y tenga un error. Así que me gusta hacer una función que verifique si el valor agregado del campo es igual a cualquiera de los usuarios en la base de datos. ¿Como hacer eso?
html
<input type="text" class="form-control" placeholder="Type name here" name="kap_bar_01" id="kap_bar_01"> <script> $(function() { var names = [ {% for u in related_users %} "{{ u.user.last_name }} {{ u.user.first_name }}", {% endfor %} ]; $( "#kap_bar_01" ).autocomplete({ source: names }); }); </script>modelos.py
class Kapcsolodasok(models.Model): def __str__(self): return str(self.user_name) user_name = models.ForeignKey(User, on_delete=models.CASCADE, default=1) date = models.DateField(auto_now_add=True, auto_now=False, blank=True) kap_bar_01 = models.TextField(max_length=200)vistas.py
def kapcsolodasok(request): profile = Profile.objects.get(user=request.user) related_users = Profile.objects.filter(projekt=profile.projekt) context = { 'related_users': related_users, 'profile': profile, } #lots of stuffs here return render(request, 'stressz/kapcsolodasok.html', context)¡Gracias de antemano!
from django.contrib.auth.models import User userList = User.objects.values()El código anterior obtendrá los nombres de usuario como una lista y una repetición para verificar el nombre de usuario ingresado. Pero creo que desea que se verifique en tiempo real, por lo que debe usar canales o ajax, etc. De lo contrario, simplemente pase el valor del nombre de usuario como url url/ y verifique eso