👻 Check our latest review to choose the best laptop for Machine Learning engineers and Deep learning tasks!
When you have a model field with a choices option you tend to have some magic values associated with human readable names. Is there in Django a convenient way to set these fields by the human readable name instead of the value?
Consider this model:
class Thing(models.Model):
PRIORITIES = (
(0, "Low"),
(1, "Normal"),
(2, "High"),
)
priority = models.IntegerField(default=0, choices=PRIORITIES)
At some point we have a Thing instance and we want to set its priority. Obviously you could do,
thing.priority = 1
But that forces you to memorize the Value-Name mapping of PRIORITIES. This doesn"t work:
thing.priority = "Normal" # Throws ValueError on .save()
Currently I have this silly workaround:
thing.priority = dict((key,value) for (value,key) in Thing.PRIORITIES)["Normal"]
but that"s clunky. Given how common this scenario could be I was wondering if anyone had a better solution. Is there some field method for setting fields by choice name which I totally overlooked?
👻 Read also: what is the best laptop for engineering students?
Set Django IntegerField by choices=... name __del__: Questions
How can I make a time delay in Python?
5 answers
I would like to know how to put a time delay in a Python script.
Answer #1
import time
time.sleep(5) # Delays for 5 seconds. You can also use a float value.
Here is another example where something is run approximately once a minute:
import time
while True:
print("This prints once a minute.")
time.sleep(60) # Delay for 1 minute (60 seconds).
Answer #2
You can use the sleep()
function in the time
module. It can take a float argument for sub-second resolution.
from time import sleep
sleep(0.1) # Time in seconds
Set Django IntegerField by choices=... name __del__: Questions
How to delete a file or folder in Python?
5 answers
How do I delete a file or folder in Python?
Answer #1
os.remove()
removes a file.os.rmdir()
removes an empty directory.shutil.rmtree()
deletes a directory and all its contents.
Path
objects from the Python 3.4+ pathlib
module also expose these instance methods:
pathlib.Path.unlink()
removes a file or symbolic link.pathlib.Path.rmdir()
removes an empty directory.
We hope this article has helped you to resolve the problem. Apart from Set Django IntegerField by choices=… name, check other __del__-related topics.
Want to excel in Python? See our review of the best Python online courses 2023. If you are interested in Data Science, check also how to learn programming in R.
By the way, this material is also available in other languages:
- Italiano Set Django IntegerField by choices=… name
- Deutsch Set Django IntegerField by choices=… name
- Français Set Django IntegerField by choices=… name
- Español Set Django IntegerField by choices=… name
- Türk Set Django IntegerField by choices=… name
- Русский Set Django IntegerField by choices=… name
- Português Set Django IntegerField by choices=… name
- Polski Set Django IntegerField by choices=… name
- Nederlandse Set Django IntegerField by choices=… name
- 中文 Set Django IntegerField by choices=… name
- 한국어 Set Django IntegerField by choices=… name
- 日本語 Set Django IntegerField by choices=… name
- हिन्दी Set Django IntegerField by choices=… name
Rome | 2023-03-25
Thanks for explaining! I was stuck with Set Django IntegerField by choices=… name for some hours, finally got it done 🤗. Will get back tomorrow with feedback
Tallinn | 2023-03-25
code Python module is always a bit confusing 😭 Set Django IntegerField by choices=… name is not the only problem I encountered. I am just not quite sure it is the best method
California | 2023-03-25
I was preparing for my coding interview, thanks for clarifying this - Set Django IntegerField by choices=… name in Python is not the simplest one. I just hope that will not emerge anymore