Sandeep - it's best to report bugs as tickets.
Anyway, I checked this out for you and I don't see the problem. I started a project, and added the code you suggested as models, ran makemigrations, and saw this error:
$ ./manage.py makemigrations core
SystemCheckError: System check identified some issues:
ERRORS:
core.Child.view: (fields.E311) 'View.field' must be unique because it is referenced by a foreign key.
HINT: Add unique=True to this field or add a UniqueConstraint (without condition) in the model Meta.constraints.
After adding primary_key=True as Alexandru suggests, the migration created successfully:
$ ./manage.py makemigrations core
Migrations for 'core':
example/core/migrations/0001_initial.py
- Create model View
- Create model Child
The migration looks correct:
# Generated by Django 4.0.3 on 2022-04-05 15:40
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = []
operations = [
migrations.CreateModel(
name="View",
fields=[
(
"field",
models.CharField(max_length=4, primary_key=True, serialize=False),
),
],
options={
"db_table": "view",
"managed": False,
},
),
migrations.CreateModel(
name="Child",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"view",
models.ForeignKey(
db_constraint=False,
on_delete=django.db.models.deletion.CASCADE,
to="core.view",
),
),
],
),
]