
Research
PyPI Package Disguised as Instagram Growth Tool Harvests User Credentials
A deceptive PyPI package posing as an Instagram growth tool collects user credentials and sends them to third-party bot services.
Edit ForeignKey, ManyToManyField and CharField in Django Admin using jQuery UI AutoComplete.
ForeignKey
, ManyToManyField
and CharField
in Django Admin using jQuery UI AutoCompleteThis Django app glues Django Admin, jQuery UI together to enable searching and managing ForeignKey and ManyToMany relationships.
At the time it was created Django did not have any way to do this, and this solution glued together some technologies of the day.
If you are building a new project then you should not use this.
Django has built in support now: https://docs.djangoproject.com/en/3.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.autocomplete_fields
http://django-ajax-selects.readthedocs.org/en/latest/
pip install django-ajax-selects
Add the app:
# settings.py
INSTALLED_APPS = (
...
'ajax_select', # <- add the app
...
)
Include the urls in your project:
# urls.py
from django.urls import path
from django.conf.urls import include
from django.conf.urls.static import static
from django.contrib import admin
from django.conf import settings
from ajax_select import urls as ajax_select_urls
admin.autodiscover()
urlpatterns = [
# This is the api endpoint that django-ajax-selects will call
# to lookup your model ids by name
path("admin/lookups/", include(ajax_select_urls)),
path("admin/", admin.site.urls),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Define a lookup channel:
# yourapp/lookups.py
from ajax_select import register, LookupChannel
from .models import Tag
@register('tags')
class TagsLookup(LookupChannel):
model = Tag
def get_query(self, q, request):
return self.model.objects.filter(name__icontains=q).order_by('name')[:50]
def format_item_display(self, item):
return u"<span class='tag'>%s</span>" % item.name
Add field to a form:
# yourapp/forms.py
from ajax_select.fields import AutoCompleteSelectMultipleField
class DocumentForm(ModelForm):
class Meta:
model = Document
tags = AutoCompleteSelectMultipleField('tags')
This will now work in the Django Admin.
To use a form outside, be sure to include form.media
on the template where you place the form:
{{ form.media }}
{{ form }}
Read the full documention here: outside of the admin
https://jquery.com/ 3.7.1 https://jqueryui.com/ 1.13.2
To use a custom jQuery UI theme you can set:
# settings.py
AJAX_SELECT_JQUERYUI_THEME = "/static/path-to-your-theme/jquery-ui-min.css"
https://jqueryui.com/themeroller/
If you need to use a different jQuery or jQuery UI then turn off the default assets:
# settings.py
AJAX_SELECT_BOOTSTRAP = False
and include jquery and jquery-ui yourself, making sure they are loaded before the Django admin loads.
Many thanks to all contributors and pull requesters !
https://github.com/crucialfelix/django-ajax-selects/graphs/contributors/
Dual licensed under the MIT and GPL licenses:
FAQs
Edit ForeignKey, ManyToManyField and CharField in Django Admin using jQuery UI AutoComplete.
We found that django-ajax-selects demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
A deceptive PyPI package posing as an Instagram growth tool collects user credentials and sends them to third-party bot services.
Product
Socket now supports pylock.toml, enabling secure, reproducible Python builds with advanced scanning and full alignment with PEP 751's new standard.
Security News
Research
Socket uncovered two npm packages that register hidden HTTP endpoints to delete all files on command.