Python Daily
2.57K subscribers
1.48K photos
53 videos
2 files
38.9K links
Daily Python News
Question, Tips and Tricks, Best Practices on Python Programming Language
Find more reddit channels over at @r_channels
Download Telegram
Using email for authentication (with username now at 150 characters)

In my current app I don't need users to have a username (although there is the slight possibility that it may be needed later) and I would prefer them to signup with an email instead.

The docs and also this blog post show how to have authentication without a username, but it looks pretty convulted to get things working.
https://docs.djangoproject.com/en/1.11/topics/auth/customizing/#a-full-example
https://www.caktusgroup.com/blog/2013/08/07/migrating-custom-user-model-django/

However now that django has had the username limit lifted to 150 characters could I just set username field to email? and live with the outside risk of a long email

(- or do better approach of setting it to `sha256(user.email).hexdigest()[:150]`
and setting
```
class User(AbstractUser):
class Meta:
unique_together = ('email', )
```

from here: https://stackoverflow.com/questions/15597188/using-email-as-username-field-in-django-1-5-custom-user-model-results-in-fielder)

Is there any downside to this approach?


/r/django
https://redd.it/6ygh8m
Anyone using the Pyramid framework?

I believe that Reddit does (and do correct me if I'm wrong), but other than that it hardly gets any press like Django and Flask do? Is anyone using it? What is your experience like?

/r/Python
https://redd.it/6yn74i
Question: Let users sort model by input

Hey everyone, I'm having trouble finding this answer online so I thought I'd come here and ask. Thanks in advance.

I have a Django model based on real-world locations and addresses. I'd like the user to be able to input their zip-code, and have the model's objects be sorted by the closest available.

It seems like I could use a simple form to collect the user's zip code, but I'm not sure what to do next. Do I need to reload the html or is there a way to sort without changing the page?

Any advice would be appreciated. I don't feel like this should be too difficult, but I'm pretty new to the web-dev world.

/r/django
https://redd.it/6yp5ll
A way to auto generate more forms? Or is there another way?

Basically I want a user to be able to fill out an Invoice, and you can enter in Labor or a Product with a quantity and how much labor costs. There will be multiple products and labor codes.

Ie.

Quantity: 2 - Product Description - Unit Cost: $5/ea - Total: $10

Quantity: 10 - Product Description - Unit Cost: $.02/ea - Total: $0.20

Quantity: 1.5 - Labor Description - Per Hour: $35/hour - Total: $52.50


Should I have a row form generate after each one is filled out, or is there a better way to just enter all the data together in one form while being broken out for customer and business to see?

/r/django
https://redd.it/6ypzwq
DRF serialization not working on many to many with through models

I have models with many-to-many relationships with a through model. I am trying to set up a DRF serializer to display this data, but I am getting an error message whenever I try to render the API.

# models.py - simplified

class Person(models.Model):
first_name = models.CharField(max_length=250)
last_name = models.CharField(max_length=250)
status = models.IntegerField(choices=STATUS_CHOICES)
village = models.ForeignKey(Village)
gender = models.IntegerField(choices=GENDER_CHOICES)


class Case(models.Model):
summary = models.TextField()
session = models.ForeignKey(Session, on_delete=models.CASCADE)
case_type = models.ForeignKey(CaseType)
court_type = models.IntegerField(choices=COURT_TYPES)
verdict = models.ForeignKey(Verdict)
litigants = models.ManyToManyField(Person, through='Litigant', related_name='litigants')


class Litigant(models.Model):
person = models.ForeignKey(Person, on_delete=models.CASCADE)
case = models.ForeignKey(Case, on_delete=models.CASCADE)
role = models.ForeignKey(Role)
fine = models.ForeignKey(Money, null=True, related_name='fine')
notes = models.TextField()

My serializers.py looks as such:

# serializers.py - simplified

class LitigantSerializer(serializers.ModelSerializer):

class Meta:
model = Litigant
fields = ('id', 'person', 'case', 'role', 'fine', 'notes')


class CaseSerializer(serializers.ModelSerializer):

litigants = LitigantSerializer(many=True, read_only=True)

class Meta:
model = Case
fields = ('id', 'summary', 'session', 'case_type', 'court_type', 'verdict', 'litigants')


class PersonSerializer(serializers.ModelSerializer):

class Meta:
model = Person
fields = ('id','first_name', 'last_name', 'village', 'status', 'gender')

My views.py is:

# views.py - simplified.

class PersonViewSet(viewsets.ModelViewSet):
queryset = Person.objects.all().order_by('village__name', 'last_name', 'first_name')
serializer_class = PersonSerializer


class CaseViewSet(viewsets.ModelViewSet):
queryset = Case.objects.all().order_by('session__village__name', 'session__date', 'court_type')
serializer_class = CaseSerializer


class LitigantViewSet(viewsets.ModelViewSet):
queryset = Litigant.objects.all().order_by('case__session__village__name', 'case__session__date', 'person__last_name',
'person__first_name')
serializer_class = LitigantSerializer

However, when I navigate to api/cases/ I receive the following error:

'RelatedManager' object has no attribute 'pk'

What is more annoying, is that when I only include id and notes in LitigantSerializer, only the id shows up... The notes are nowhere to be found.

Thank you for any help!


/r/django
https://redd.it/6yrh9k
PEP 554 -- Multiple Interpreters in the Stdlib
https://www.python.org/dev/peps/pep-0554/

/r/Python
https://redd.it/6yp7kv
[AF] How to display a Tree-data structure.

The Title already says almost everything.

I got this simple Tree Data structure where there are nodes and edges and want to display them. I don t know if it s possible to do this with jinja2 or some Flask Framework, could not find anything with google.

Any help, even knowing that it s not possible with Flask to do that, is appreciated

/r/flask
https://redd.it/6ytp97
Python Namesilo module

Hello,

I'm developing Python module (api wrapper) for [Namesilo service](https://www.namesilo.com/api_reference.php). It's open source and it's my first module in Python. I'm looking for some advice what to improve, what am I doing wrong or right. You can find module on my github [python-namesilo](https://github.com/goranvrbaski/python-namesilo)

Thanks!

/r/Python
https://redd.it/6yuiai
PyNomaly: outlier / anomaly detection using Local Outlier Probabilities (LoOP)

Hi all! I've been lurking on this sub for a little while now and thought I'd post a side project I have been working on. It's called PyNomaly, which uses Local Outlier Probabilities (LoOP) to score individual data points on the probability that they are an outlier. You can check it out [here](https://github.com/vc1492a/PyNomaly).

I'm looking for some feedback and folks that could try it out, do some testing and open some issues if there are any. Would appreciate some feedback from the community so I can improve the package! I hope some of you find it useful.



/r/pystats
https://redd.it/6yvu6m