ForeignKey to a model with a CharField primary key produces unexpected results for an empty-string PK value
class ModelA(models.Model):
code = models.CharField(max_length=50, primary_key=True)
class ModelB(models.Model):
model_a = models.ForeignKey(ModelA, blank=True, null=True, max_length=50)
In this case, if there's an instance of ModelA
such that instance_a.code == ''
, ModelB
will not be able to reference it properly. Upon save, db.models.fields.related.ForeignKey
will change model_a_id
from ''
to NULL
. While this is an odd case, and I don't particularly like the situation of having an empty string as a primary key, I think Django should at least be able to handle it. The offending code is at https://github.com/django/django/blob/master/django/db/models/fields/related.py#L987.
Change History
(3)
Resolution: |
→ invalid
|
Status: |
new → closed
|
You cannot have a empty primary_key.
Can you provide a failing test for this ?